-
一个进程中有多个线程查看全部
-
争用条件(Race Condition):多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为征用条件。查看全部
-
Stop()停止线程,是让线程戛然而止,不知道完成了什么,没法做清理工作。查看全部
-
join方法的执行:所有的线程都要等待当前调用join方法线程执行完毕才可执行。查看全部
-
知识点: 1,如何创建线程级线程的基本操作。 2,可见性及volatile关键字。 3,争用条件。 4,线程的互斥synchronized方法。 5,线程同步wait和notifyAll。 扩展建议: 1,如何扩展Java的并发知识 Java Memory Mode:JMM描述了Java线程如何通过内存进行互斥, happens-before原则及意义。 synchronized,volatile和final Locks & Condition Java锁机制和等待条件的高层实现。 Java.util.concurrent.locks 线程的安全性 原子性和可见性 Java.util.concurrent.atomic synchronized & volatile DeadLocks 多线程编程常用的交互模型 Producer-Consumer模型 Read-Write Lock模型 Future模型 Work Thread模型 Java 5中并发编程的工具 java.util.concurrent 线程池ExecutorService Callable&Future BlockingQueue 书推荐Java core Java和Java concurrency in practice。查看全部
-
互斥:关键数据在一个时间被一个线程使用。 同步实现:object 方法wait()/notify()/notifyall(); wait set 类似于线程的休息室,访问共享数据的代码称为critical section。一个线程获取锁,然后进入临界区 ,发现某些天骄不满足,然后调用锁对象上的wait方法,然后线程释放掉锁资源,进入锁对象上的wait set。其他线程可以获取所资源,然后执行,完了以后调用notify,通知锁对象上的等待线程。查看全部
-
一、互斥 1、同一时间,只能有一个线程访问数据 二、同步 1、是一种通信机制,一个线程操作完成后,以某种方式通知其他线程 三、实现方法 1、【互斥】构建锁对象(Object objLock),通过synchronized(lockObj){ 互斥的代码块 } 2、加锁操作会开销系统资源,降低效率。 3、在某线程的条件不满足任务时,使用lockObj.wait()对线程进行阻挡,防止其继续竞争CPU资源,滞留在wait set中,等待唤醒,【唤醒后继续完成业务】 4、【同步】在某一代码正确执行完业务后,通过lockObj.notifyAll()唤醒所有在lockObj对象等待的线程查看全部
-
2014.12.30查看全部
-
如何停止线程:使用退出的标志。查看全部
-
如何正确停止线程? --使用退出标志 如本文:volatile boolean keepRunning=true; 这样做的好处是:使得线程有机会使得一个完整的业务步骤被完整地执行,在执行完业务步骤后有充分的时间去做代码的清理工作,使得线程代码在实际中更安全查看全部
-
stop()方法让线程戛然而止,不是一个正确的结束线程的方法查看全部
-
join方法的执行:所有的线程都要等待当前调用join方法线程执行完毕才可执行。查看全部
-
ctrl+1 sysout Thread.yield();让出cpu volatile boolean keepRunning;//volatile 保证了线程可以正确地读取其他线程写入的值,如果不写成volatile,由于可见性的问题,当前线程有可能不能读到这个值//可见性JMM(JAVA内存模型)happens-before原则、可见性原则查看全部
-
争用条件查看全部
-
Thread常用方法查看全部
举报
0/150
提交
取消