-
创建:Thread(或Runnable target.或String name)
方法:run()
查看全部 -
join()方法将使得所有其他线程等待此线程完成自己的调用方法
查看全部 -
建议: 1、Java Memory Mode:JMM描述了java线程如何通过内存进行交互,了解happens-before,synchronized,voliatile & final 2、Locks % Condition:锁机制和等待条件的高层实现 java.util,concurrent.locks 3、线程安全性:原子性与可见性,死锁等 4、多线程常用的交互模型 · Producer-Consumer模型 · Read-Write Lock模型 · Future模型 · Worker Thread模型
查看全部 -
线程加锁
查看全部 -
多线程基础: 1、yield让出cpu处理时间片; 2、join让当前线程执行完毕再去执行其他线程(保证当前线程执行完毕再执行其他线程); 3、volatile可见性,只限于boolean来说不破坏原子性;
查看全部 -
建议: 1、Java Memory Mode:JMM描述了java线程如何通过内存进行交互,了解happens-before,synchronized,voliatile & final 2、Locks % Condition:锁机制和等待条件的高层实现 java.util,concurrent.locks 3、线程安全性:原子性与可见性,死锁等 4、多线程常用的交互模型 · Producer-Consumer模型 · Read-Write Lock模型 · Future模型 · Worker Thread模型
查看全部 -
同步可以由wait()/notify()/notifyAll()实现,这三个方法都是Object对象而非Thread对象。同步一定是由两个或多个线程之间完成的,而不是由一个线程完成的,当一个其他线程完成时,会通过notify通知被阻塞的线程(如果满足条件则唤醒),实现进程间的通信即为线程同步。wait()和notify()是在不同的线程中调用的
查看全部 -
一、线程的特点:
进程是资源分配的最小单位,一个进程中有1—n个线程,线程共享资源,同一时刻只能有一个线程占领CPU
二、多线程:之间争用资源,多线程之间同步与互斥<br>
1,多线程之间的互斥(加锁实现):同一时间,只能有一个线程访问临界区(防止线程之间争用条件造成的“能量损失”)[对该临界资源进行加锁,表示现在只能由该线程进行访问]<br>
2,多线程之间的同步(线程的等待和唤醒:wait()+notifyAll()):通信机制;一个线程完成,以某种方式通知其他线程可以访问临界区<br>
3,锁:private final Object lockObj=new Object();
三、重要的话
线程之间的互斥:通过加锁实现:线程访问临界区的代码放在一个代码块中,加锁实现
线程之间的同步:通过wait()+notify()的通信机制来实现
wait()和notifyAll()是在线程同步的时候使用的一对方法查看全部 -
Thread的常用方法
查看全部 -
%d输出整数 %10.2f 输出浮点数,小数点前10位,小数点后2位 %n 换行 system.out.printf("从%d转义%10.2f单位能量到%d%n",int,double,int")
查看全部 -
http://blog.sina.com.cn/s/blog_a79dc81e01015psh.html
1.Interrupted 相当于 旗标 (isInterrupted ==>true flase) 2.线程中使用 sleep等方法造成线程堵塞时, 标志位被清除,Interrupted方式无效 抛出InterruptedException(中断异常) interrupt方法是用来唤醒被阻塞的线程的,如果线程使用了wait, sleep, join方法,那么线程就会进入阻塞状态,使用interrupt方法会终止这种状态,此时线程的sleep等方法下面的catch语句就会接收到这个打断,从而启动线程,继续做要做的事情。如果线程在阻塞之前使用interrupt方法,那么在阻塞的时候,会抛出异常,并把中断标志位设置成false。 一、错误一:stop()方法 1、not stop:stop()方法会使线程戛然而止 2、使程序突然中止,无法完成完整的业务步骤,也无法进行清理工作 二、错误二:interrupt()方法 1、interrupt()方法只能设置interrupt标志位(且在线程阻塞情况下,标志位会被清除,更无法设置中断标志位),无法停止线程 三、正确方法:设置退出标志 1、使用退出标志位来停止while循环 2、完成最后一次业务后跳出while循环后,之后进行一些清理工作
查看全部 -
Tread常用方法
查看全部 -
停止线程的方法stop已经被弃用
查看全部 -
正确的停止线程的运行 1:首先使用线程自带的方法stop(),是不正确的,原因如下:此方法会导致线程戛然而止,我们不清楚线程完成了什么,没完成什么,也没有时间来完成对应的线程运行的清理工作。 2:正确停止线程的方法是,在线程执行中设置状态标识,通过控制此状态标识,来控制线程的正常完整的结束,另外,volatile关键字是保证线程变量对外可见的标志,通过此关键字修饰的状态变量,才能在别的线程中被正确的赋值。
查看全部 -
线程调用join方法后,所有其他线程等待该线程执行完毕
查看全部
举报