导航:首页 > 编程语言 > java并发问题

java并发问题

发布时间:2022-08-13 18:42:18

❶ 《java并发编程实战》上面的一个问题

总共就三种情况!!!!1.无限循环,number的值为0:在主线程即main方法中对ready的设置(即ready = true)还没来得及写回主存(静态变量保存在方法区),ReaderThread 线程就已经读取了ready的值(并保留了副本),然后加载到Java栈中,此时ready 一直为false所以出现死循环。number的值也可以类似推理,在主线程即main方法中对number的设置(即number= 42)还没来得及写回主存(静态变量保存在方法区),ReaderThread 线程就已经读取了number的值(并保留了副本),然后加载到Java栈中,此时number一直为0(只是没有打印出来而已);

2.无限循环,number的值为42:在主线程即main方法中对ready的设置(即ready = true)还没来得及写回主存(静态变量保存在方法区),ReaderThread 线程就已经读取了ready的值(并保留了副本),然后加载到Java栈中,此时ready 一直为false所以出现死循环。在主线程即main方法中对number的设置(即number= 42)后(即number的值已经写回了主存),ReaderThread 线程才开始执行此时读取的number为42(只是没有打印出来而已);

3.输出0:在主线程即main方法中对ready的设置(即ready = true)后(即ready的值已经写回了主存),还没来得及写回主存(静态变量保存在方法区),ReaderThread 线程就已经读取了number的值(并保留了副本),然后加载到Java栈中,此时number为0;

至于为什么会出现ready = true写回主存后,number = 42还没写回主存。这应该是由于Java虚拟机的一种优化技术叫指令重排序,number = 42不一定会在ready = true前面执行,得看Java虚拟机是怎么优化的。

❷ java多线程并发问题怎么解决

java多线程并发问题产生的主要原因是多个线程访问一个实例,导致其中一个线程修改或删除这个实例时,其他线程产生并发问题。

要解决这种并发问题有两种方法:
(1)加上线程锁synchronization
(2)还有个不是办法的办法:不用成员变量,用局部变量

❸ java 项目开发中中如何解决高并发问题

对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,

但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。

为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步

1、同步和异步的区别和联系

所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到

返回的值或消息后才往下执行其它的命令

异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回

值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。

同步在一定程度上可以看做是单线程,这个线程请求一个方法后就待这个方法给他回复,否则他不往下执行(死心眼)。

异步在一定程度上可以看做是多线程的(废话,一个线程怎么叫异步),请求一个方法后,就不管了,继续执行其他的方法。

同步就是一件事,一件事情一件事的做。
异步就是,做一件事情,不引响做其他事情。

例如:吃饭和说话,只能一件事一件事的来,因为只有一张嘴。
但吃饭和听音乐是异步的,因为,听音乐并不引响我们吃饭。

对于Java程序员而言,我们会经常听到同步关键字synchronized,假如这个同步的监视对象是类的话,那么

阅读全文

与java并发问题相关的资料

热点内容
java定义整数 浏览:371
怎么添加数据透视表命令 浏览:799
hk4100f与单片机连接 浏览:861
门禁钥匙加密可以复制吗 浏览:194
单片机ad采样交流信号 浏览:161
龙门铣外圆编程 浏览:518
gal编程工具 浏览:401
浙大翁恺老师用的什么编译器 浏览:592
gs5发动机压缩比 浏览:716
税控盘插上显示未检测加密盘 浏览:305
怎么潜移默化的命令一个人 浏览:115
解压笔烂了怎么补 浏览:683
db什么文件夹 浏览:868
宝骏730热车压缩机不工作 浏览:505
服务器崩溃怎么登录 浏览:899
怎么看服务器是多少c 浏览:670
趣智校园app怎么使用 浏览:155
乐家达要下什么app 浏览:346
矩阵因子分解模型算法思想 浏览:447
java6位验证码 浏览:767