JAVA多线程问题,求教 本帖最后由 MaperHeal 于 2012-03-24 18:16:06 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个好像有点关系 多核的CPU可以同时运行几个进程 应该有种机制 使得一个线程调用的函数运行完以后 才允许另一个线程运行 当他们都共享某些变量时MFC中是这样的 java 中应该也是这样的 这个跟多核是有点关系,想让每个线程共享资源,又不相互影响的话;定义一个同步代码块。将run()方法改为public synchronized void run()。每个线程执行完自己的代码块,在让给其他线程。 回上面各层知道使用synchronized锁住,我想了解为啥我多线程故意制造问题的时候输出也不是我希望的结果这么奇葩 如果每个线程的时间片都相同,那么,理论上应该最先输出三个1.但是,实际上,每个线程的时间片,是由操作系统来决定的。上述楼主给出的情况,很可能会出现。可以假设如下情况:1.第一个线程运气好,执行一次循环,输出1,之后让出CPU;2.第二个线程运气一般,第一次循环执行到yield语句,让出CPU;3.第三个线程运气差,执行完while (id <= 20)语句,让出CPU;4.之后,第一个线程获得执行机会,又执行了一次循环,输出2,让出CPU;5.之后,第二个线程没被轮到,没有执行任何代码;6.第三个线程获得执行机会,这时接着上次,由于上次while语句id是1,所以,打印输出1,7.第一个线程,时运不计,一直卡在id++这句之前,直到有个线程打印14了,才获得下一次运行机会,打印3. 新建java project,从已存在的工程导入 Java调用批处理bat文件产生的乱码问题 有关java中modifier的问题!!!! 关于jsp连接oracle数据库的问题 怎么用DecimalFormat实现123000123变成123,000,123呢?在线等 开发类似 sockscap的程序 类是怎么样初始化的 欢迎加入Service.java高级群 谁能帮我把下面的程序加上注释说明一下程序运行的过程吗?谢谢. 把一个用java写的软件包编译?就象c++的 makefile一样? 用java中的File.list()出现了一个我想不通的事 java doc 的生成?
MFC中是这样的 java 中应该也是这样的
但是,实际上,每个线程的时间片,是由操作系统来决定的。
上述楼主给出的情况,很可能会出现。可以假设如下情况:
1.第一个线程运气好,执行一次循环,输出1,之后让出CPU;
2.第二个线程运气一般,第一次循环执行到yield语句,让出CPU;
3.第三个线程运气差,执行完while (id <= 20)语句,让出CPU;
4.之后,第一个线程获得执行机会,又执行了一次循环,输出2,让出CPU;
5.之后,第二个线程没被轮到,没有执行任何代码;
6.第三个线程获得执行机会,这时接着上次,由于上次while语句id是1,所以,打印输出1,
7.第一个线程,时运不计,一直卡在id++这句之前,直到有个线程打印14了,才获得下一次运行机会,打印3.