java并发
文章平均质量分 67
wangyu666777888
只有自己能成就自己。。。
展开
-
操作 java并发-线程安全及不可变性(5)
当多个线程同时访问同一个资源是,可能会出现资源竞争。例如:多个线程对同一个文件出现了读和写的操作,这就会产生竞态条件。如果都是读的话,就不会出现竞争,因为读数据不会造成影响,多个线程可以同时读取。解决多线程的一种方式创建不可变量。也就是创建一个不可被改变的变量。package com.concurenny.chapter.five;/** * 创建者:Mr lebron 创建时间:2原创 2017-11-17 13:38:50 · 236 阅读 · 0 评论 -
java并发-竞态条件与临界区(3)
竞态条件:多个线程共享的资源就是竞态资源。例如:多个线程操作同一个变量。临界区:共享变量所在的那块代码就是临界区package com.concurenny.chapter.three;/** * 创建者:Mr lebron 创建时间:2017年11月16日 下午4:11:53 * count是被两个线程共享的,所以是竞态资源。对count的操作是在add方法,所以add方原创 2017-11-16 16:19:53 · 255 阅读 · 0 评论 -
java并发-线程的创建和运行(2)
怎么创建一个java线程?只需要实现Thread即可。package com.concurenny.chapter.two;/** * 创建者:Mr lebron 创建时间:2017年11月16日 下午3:31:39 */public class ThreadDemo { // 自定义线程 static class MyThread extends Thread {原创 2017-11-16 16:03:55 · 233 阅读 · 0 评论 -
java并发-概述(1)
并发是指什么?我的理解是指多个线程在共用cpu使用权,如果只有一个线程在运行,就不叫并发了,因为线程占用的资源(内存...),都是该线程控制的,不受其他因素影响。对于单个cpu来说,某一时刻只能有一个线程在cpu上在执行,而并发则是指多个行程在通过时间片使用cpu,也就是一个线程执行一小段时间。并发会发生什么问题?并发是指多个线程都在执行,那么,这些线程可能都在使用同一个变量,而如果一原创 2017-11-16 14:48:28 · 245 阅读 · 0 评论 -
java并发-假唤醒
假唤醒是程序的错误,指不应该被唤醒却被唤醒了。package com.concurenny.chapter.eight;import java.util.ArrayList;import java.util.List;/** * 创建者:Mr lebron 创建时间:2017年11月17日 下午4:48:11 */public class FakeWakeUp { priva原创 2017-11-17 17:23:30 · 1137 阅读 · 0 评论 -
java并发-线程通信(9)
需要通信的多种方式以及注意事项请移步:http://ifeve.com/thread-signaling/线程通信方式:1:多个线程之间通过共享变量通信。也就是A线程修改了变量x=11,B线程拿到x的值就是A修改之后的值11。这也是线程之间的间接通信。2.通过方法wait,notiy,notifiAll.wait:A线程调用了该方法,那么A线程将沉睡,也就是没有了CPU执行权,需要原创 2017-11-17 16:43:52 · 215 阅读 · 0 评论 -
java并发-java同步块(8)
java同步块也就是让同步块的代码只能同时有一个线程在执行,并且可以保证原子性和可见性。通过synchronized或者lock实现。对象方法同步package com.concurenny.chapter.seven;/** * 创建者:Mr lebron 创建时间:2017年11月17日 下午3:05:20 */public class ObjectMethodSynchro原创 2017-11-17 15:34:23 · 240 阅读 · 0 评论 -
java并发-原子性和可见性(7)
原子性:某个操作同时只能由一个线程执行。可见性:一个线程的修改对其他线程是可见的。也就是A线程修改了变量x,那么B,C,D...线程此时去拿到的x肯定是A修改之后的值。package com.concurenny.chapter.six;/** * 创建者:Mr lebron 创建时间:2017年11月17日 下午2:27:32 */public class AtomicityD原创 2017-11-17 14:53:18 · 199 阅读 · 0 评论 -
java并发-java内存模型(6)
这一部分非常重要,需要花时间好好理解一下。了解了java内存模型和硬件的关系很重要,很重要,很重要。Java内存模型Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何转载 2017-11-17 13:50:53 · 251 阅读 · 0 评论 -
java并发-线程安全与共享资源(4)
允许多个线程同时运行的代码就是线程安全的代码。下面讲的是需要注意的线程安全的几种情况:1.局部原始变量局部原始变量都是线程安全的,因为这种变量在每个线程都有一个副本。例如:对于局部变量int x=0;那么每个线程在栈中都会有一个自己的x。package com.concurenny.chapter.four;/** * 创建者:Mr lebron 创建时间:2017年11月16日原创 2017-11-16 19:50:22 · 309 阅读 · 0 评论