1、两种实现形式,继承Thread类,实现Runnable接口,Thread也是实现了Runnable接口,Thread源码中有一个target对象,Runnable类型。可通过这种方法实现多个线程的资源共享,如下:
public class Main {
public static void main(String[] args) {
Runnable test = new TestThread();
new Thread(test).start();
new Thread(test).start();
}
}
/**
*
* @author Jerome
*/
public class TestThread implements Runnable {
int count = 0;
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(count++);
}
}
}
运行结果如下:
两个线程共享了变量count;
2、线程通过wait进入阻塞状态,即等待获取锁,一般的锁为this(当前线程)必须调用notify唤醒之后才能继续被分配cpu资料运行;
synchronized (this) {
this.wait();
}
this.notify();
wait()和notify()因为会对对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized代码块中进行调用。
3、终止线程有3中方法,设置标志位(run方法运行正常退出),调用interrupt(),调用stop(),后面两种是让线程抛出异常而退出,不推荐;
4、sleep不会释放锁标志;
5、所谓的线程之间保持同步,是指不同的线程在执行同一个对象的同步代码块时,因为要获得对象的同步锁而互相牵制,不同对象不存在同步的问题;
6、synchronized 关键字能够修饰一个对象实例中的函数或者代码块。 在一个非静态方法中 this 关键字表示当前的实例对象。 在一个 synchronized 修饰的静态的方法中,这个方法所在的类使用 Class 作为实例对象
- 大小: 6.3 KB
分享到:
相关推荐
从多线程的基础、线程同步、线程间通信、线程调度、线程池、并发容器、线程安全的集合、原子变量等方面去罗列主要知识点,以思维导图的方式进行呈现,可以让读者更条理清晰的在最短的时间内掌握多线程的主要知识
单线程、多线程、lock、线程通信、timer
Java多线程知识点整理.pdf
对Java线程总体知识的梳理,主要描述了关键知识点,可以梳理一下思路!
使用思维导图方式,梳理了多线程整体结构,从多线程的介绍到创建线程、线程的生命周期、线程池、锁种类进行梳理。
java多线程
多线程知识学习整理一阶段
Java多线程--多线程知识点总结和企业真题
Java多线程-知识点梳理和总结-超详细-面试知识点.docx
linux多线程编程 声明:本文是网上整理的资料,版权属其作者本人所有。 1 第一章 线程基础知识 2 一.什么是线程 2 二.线程的优点 2 三.线程的缺点 2 四.线程的结构 2 五.线程标识 2 六.线程的创建 3 七..线程...
Java的思维导图模型,自己上课和下课的总结,不喜勿喷
一个线程组代表了一系列的线程。并且,一个线程组可以包括其他的线程组。除了初始线程组外,每个线程组都有一个父线程组,类似于树的结构。
随着现代处理器的生产工艺从提升...《Java多线程编程实战指南(核心篇)》适合有一定Java语言基础的读者作为入门多线程编程之用,也适合有一定多线程编程经验的读者作为重新梳理知识结构以提升认知层次和参考之用。
Windows采用多优先级队列,windows为每个优先级的线程都准备了优先级队列,同一优先级各线程按时间片轮转进行调度,多处理器可以多线程并行。 Windows没有单独的调度模块或程序,调度的代码是在内核中实现的,广泛...
1.1为什么需要多线程 1.2不安全示例 1.3并发问题的根源 1.4JMM 1.5线程安全的分类 1.6线程安全的方法 二、线程基础 2.1状态 2.2使用方式 2.3基础机制 2.4中断 2.5互斥同步 2.6线程合作 三、...
强烈推荐,经经验丰富的老师总结的JAVA线程的有关知识点。。
多线程处理是创建可以响应的智能客户端应用程序的重要部分,本文整理、概括与梳理了NET多线程处理的知识,主要包含:1)同步和异步调用之间的选择;2)前台线程和后台线程之间的选择;3)处理锁定和同步;4)何时使用...
Java多线程-多功能演示系统,连接MySQL数据库利用多线程实现信息交流,为教师提供教学服务,便于教师整理教学资料,整合所需知识内容,更好的为学生提供生动形象的理解方式,加强教师与学生之间的互动沟通。
JAVA核心知识点整理,涵盖JAVA基础、集合类、JVM、IO/NIO、多线程、Spring原理等知识。