社区
Java SE
帖子详情
求问关于线程的程序执行问题
yangzhen0126
2016-10-20 04:59:50
程序如图,运行结果为1000 b=1000,谁能说一下程序执行的过程,为什么第一行会出1000,而不是2000
...全文
558
10
打赏
收藏
求问关于线程的程序执行问题
程序如图,运行结果为1000 b=1000,谁能说一下程序执行的过程,为什么第一行会出1000,而不是2000
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NewMoons
2016-11-05
打赏
举报
回复
9楼是是是是是是正解。
休息的风
2016-10-25
打赏
举报
回复
楼主会问这上问题,其实是还没理解线程是如何工作的。 对于这段程序会会打印出哪个值,是跟CUP时间片轮转有关的。代码涉及到两个线程,一个是main线程,一个是新开的t线程;当main执行到t.start()时,接下来就是main和t在抢cup的资源的,谁先抢到就先执行谁的。所以对于执行结果来说,其实是随机的,你没法确实会先执行谁的。如果要确保t先执行,可以在t.start()后,加上t.join()就会等t先执行完再执行main的线程。建议可以看下java多线程编程核心技术
bichir
2016-10-22
打赏
举报
回复
3楼说得对,线程是异步的。这个代码中执行结果不是唯一的,有可能是1000,有可能是2000。因为你不知道当主线程执行到print时子线程有没执行完。有可能执行完了,也可能没执行完。如果你在print上面用个sleep停1,2钟你会发现结果会是2000.
yannsPeng
2016-10-22
打赏
举报
回复
同求为什么debug的时候测试的结果和直接跑出来的结果不一样?
yannsPeng
2016-10-22
打赏
举报
回复
yannsPeng
2016-10-22
打赏
举报
回复
没看完代码,我才是全局变量和局部变量的原因
yangzhen0126
2016-10-21
打赏
举报
回复
引用 3 楼 爱笑容下的悲伤的回复:
你创建的线程还没执行完,就已经执行到了tt.m2()
能详解吗?两个方法都被锁定了,不是必须等一个方法执行完才能执行另一个吗?即使先执行主线程也应该是2000啊
爱笑容下的悲伤
2016-10-21
打赏
举报
回复
你创建的线程还没执行完,就已经执行到了tt.m2()
yangzhen0126
2016-10-20
打赏
举报
回复
引用 1 楼 NewMoons 的回复:
拜托能把代码发上来么?
代码: package Thread; public class TT implements Runnable { int b = 100; public synchronized void m1() throws Exception{ //Thread.sleep(2000); b = 1000; Thread.sleep(5000); System.out.println("b = " + b); } public synchronized void m2() throws Exception { Thread.sleep(2500); b = 2000; } public void run() { //System.out.println("Thread starts!"); try { m1(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { TT tt = new TT(); Thread t = new Thread(tt); t.start(); tt.m2(); System.out.println(tt.b); } }
NewMoons
2016-10-20
打赏
举报
回复
拜托能把代码发上来么?
关于多
线程
对
程序执行
时间的影响
多
线程
真的能加速程序的执行吗? 假设有以下一个任务:读取一个文件,从文件中搜索指定的单词,统计个数。用以下两种方式完成: 1.开两个
线程
,一个
线程
负责读取文件,读取一个单词后扔给另一个
线程
,另一个
线程
负责检查这个单词是否匹配指定的单词。 2.只用一个
线程
,边读文件,读完一个单词以后,匹配这个单词,匹配出结果以后再读下一个单词。 两段程序的代码如下: 多
线程
程序:(文本文件用的是我在申请的
Python多
线程
与异步IO:提高
程序执行
效率的双剑合璧
大家好!今天我要和大家探讨的是如何利用Python的多
线程
和异步IO技术来提高程序的执行效率。前段时间,我在一个项目中遇到了一些性能瓶颈,经过一番研究和实践,发现多
线程
和异步IO的结合使用可以显著提升程序的响应速度。想象一下,一个能够同时处理多个任务并且无需等待IO操作完成的程序,是不是很高效?今天,我就和大家分享一下如何实现这种高效的程序。在这篇文章中,我们将介绍Python中的多
线程
和异步IO技术,详细讲解它们的应用场景以及如何结合使用。多
线程
是指在一个程序中同时运行多个
线程
,每个
线程
执行不同的任务。
C语言多
线程
与并发编程:提高
程序执行
效率
本文介绍了C语言多
线程
与并发编程的核心概念和实践方法。主要内容包括:1)
线程
与进程的区别,强调
线程
共享进程资源;2)
线程
生命周期管理,通过pthread_create等函数创建和控制
线程
;3)
线程
同步机制,使用互斥锁、条件变量等避免数据竞争;4)
线程
通信技术,实现
线程
协作。文中提供了多个代码示例,如
线程
创建、互斥锁使用和生产-消费者模型实现。文章指出合理使用多
线程
能提升程序效率,但需注意
线程
同步和通信
问题
,避免常见错误。
Python多
线程
编程实战:提高
程序执行
效率的策略
在Python编程中,多
线程
是一种常用的技术,用于提高程序的执行效率,特别是在处理I/O密集型任务时。本文将深入探讨Python多
线程
编程的实战技巧,包括如何设计
线程
安全的代码、如何有效地利用
线程
池,并通过示例代码进行演示。通过合理地设计
线程
安全的代码和利用
线程
池,我们可以并行地处理多个任务,从而加快程序的运行速度。需要注意的是,在实际应用中,还需要考虑网络延迟、服务器响应等因素对多
线程
性能的影响。
线程
池是一种管理
线程
的技术,它可以减少
线程
的创建和销毁开销,提高系统的响应速度。函数来下载指定URL的内容。
打印
程序执行
时间
在查
程序执行
顺序的过程中,打印
程序执行
点的时间可以清楚准确的得到
程序执行
顺序。在linux环境下有很多种得到
程序执行
时间的方法,用到方法较多不一一列举 在这里只记录常用到的几种: #include 包含这个头文件后可以使用 time_t 类型表示的就是时间,可以调用 time_t time( time_t *t) 函数得到时间。 如: time_t the_tim
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章