
多线程
多线程相关
我的风墙呢
喜欢漂亮的代码,喜欢算法,喜欢学习
展开
-
多线程笔记——3
线程间的通信 1等待唤醒机制 wait notify是object类的方法,该方法用来将当前线程置入“预执行队列”,并在wait处停止执行直到被唤醒才继续执行 执行wait()方法,线程必须获得该对象的对象级别的锁,否则会抛出IllegalMonitorStateException. wait 方法释放锁 sleep 方法不释放锁 notify 被执行后不释放锁,必须执行完not...原创 2018-09-24 16:49:04 · 168 阅读 · 0 评论 -
多线程笔记——2
对象及变量的并发访问 1 Synchronized 同步方法 多线程对同一个对象中的实例变量进行并发访问的时候产生的后果就是脏读,而线程安全就是要同步获取实例变量 2 synchronized 锁是对象锁,两个线程分别访问同一个类的两个不同对象的同一个方法,效果是异步执行的。 3关键字synchronized 声明的方法一定是排队进行的 4 synchronized 锁重入 当一...原创 2018-09-24 11:27:00 · 112 阅读 · 0 评论 -
多线程笔记——1
在学习多线程的时候首先我们要清楚一线问题: 1进程:系统分配资源和调度的独立单位,线程: 进程中独立运行的子任务 2多线程的实现方式 集成Thread类和实现Runnable接口 3线程的执行顺序与调用顺序无关的,start()方法会通知“线程规划器”,由它启动一个线程来执行run()方法 4Thread类其实也是实现的Runnable接口 其源码中定义为: class Thread i...原创 2018-09-24 10:10:42 · 136 阅读 · 0 评论 -
wait,notify,notifyAll
notify()是唤醒一个线程 notifyAll()是唤醒全部线程 每个对象都有唯一与之对应的内部锁(Monitor),虚拟机为每个对象维护两个队列,Entry Set ,Wait Set. 对于任意的Object object,Entry set存储等待获取object内部锁的所有线程,Wait Set 用于存储 object.wait/object.wait(long)的线程 eg: Object object ,内部锁 monitorO 当 A,B,C 三个线程同时请求获得monitorO原创 2020-08-18 15:02:18 · 200 阅读 · 0 评论