-
六、总结与展望
1、学习到的知识点:
a)如何创建线程以及线程的基本操作
b)可见性以及volatile关键字
c)争用条件
d)线程的互斥synchronized
e)线程的同步wait()/notify()/notifyall()
2、扩展建议
a)Java Memory Mode
JMM描述了Java线程如何通过内存进行交互
happens-before原则
如何通过synchronize,volatile,final来实现happens-before原则
b)Locks & Condition 对象
Java锁机制和等待条件的高层实现
java.util.concurrent.locks
c)线程的安全性
原子性和可见性
java.util.concurrent.atomic
synchronized & volatile
DeadLocks
d)多线程编程常用的交互模型
Producer-Consumer模型
Read-Write Lock模型
Future模型
Worker Thread模型
e)Java5中并发编程工具
java.util.concurrent
线程池ExecutorService
Callable & Future
BlockingQueue
f)推荐两本书
查看全部 -
3、广为流传的错误方法—interrupt()
a)调用interrupt()方法会使线程的interrupted属性值被set。
b)当线程调用sleep(),join()等方法在阻塞状态下,又被别的线程调用的interrupt()方法,则会抛出interruption异常,并且interrupted属性值会被清空。
查看全部 -
线程的创建 Thread()
Thread(String name)
Thread(runnable target)
Thread(Runnable target,String name)
线程的启动 void start();
线程的休眠 static void sleep(long millis)
static void sleep(long millis,int nanos) 纳秒级别
使用其他线程等待当前线程终止
void join() 是当前线程执行完之后其他线程才可以获得执行的机会
void join(long millis) 是其他线程最大等待时间预值
void join(long millis,int nanos)
当前运行线程释放处理器资源,并重新竞争处理器资源
static void yield()
返回当前运行的线程的引用
static Thread currentThread()
查看全部 -
多线程
进程:程序的执行过程 动态性
进程是资源和线程的载体
线程是系统中最小的执行单元,同一进程中可以有多个线程,线程可以共享资源
查看全部 -
进程是动态的,进程持有线程。
查看全部 -
使用volite关键字来实现线程停止,可以使一个线程完整运行完毕,业务完整,线程安全,而是用stop则不能使线程运行完整,不安全。查看全部
-
1、JMM内存模型,happens-before,synchronized,volatile&final
2、Locks&Condition,锁机制
3、线程安全性
4、多线程常用交互模型
5、Java5中并发编程工具
查看全部 -
volatile boolean keepRunning = true
查看全部 -
没有提供源代码么
查看全部 -
1.如果线程在之前被join()、sleep()或者wait()等方法阻塞,interrrupt使用会产生两种结果:一种是清除中断状态,一种是获得interruptedException
查看全部 -
如何正确停止线程?
--使用退出标志
如本文:volatile boolean keepRunning=true;
这样做的好处是:使得线程有机会使得一个完整的业务步骤被完整地执行,在执行完业务步骤后有充分的时间去做代码的清理工作,使得线程代码在实际中更安全查看全部 -
线程的创建:Thread() Thread(String name) Thread(Runnable target) Thread(Runnable target,String name)
线程的方法:void start();//启动线程
static void sleep(long millis)
static void sleep(long millis,int nanos) //线程休眠
void join()
void join(long millis)
void join(long millis,int nanos) //使其他线程等待当前线程终止
static void yield()//当前运行线程释放处理器资源
static Thread currentThread() //返回当前运行线程引用
查看全部 -
进程:程序的执行的过程,它持有资源(共享内存,共享文件)和线程。
线程:系统中最小的执行单元,同一个进程中可以有多个线程
现成的互斥和同步:
a.互斥:多个线程竞争同一个资源。
b.同步:协同步调,按先后顺序进行运行。
查看全部 -
Thread.sleep(50);
是将主线程休眠50毫秒=0.05秒,将cpu片段让给另外两个线程,50毫秒之后进入就绪状态,之后三个线程竞争cpu资源
查看全部 -
interrupt()方法不能停止线程
在使用 sleep()、join()方法时要招聘InterruptedException异常
查看全部
举报