社区
Java
帖子详情
马士兵 多线程小例子
dpflyee
2017-07-30 04:44:55
在原例子基础上加了一些标记的打印语句,出现了很多种结果,把m1方法中的Sleep语句注释掉后,截取了两个典型的结果。上半部分的结果我可以理解,关键是下半部分。是不是可以理解成m1方法执行之前已经将赋予b值将要打印,结果先执行了m1方法,m1方法执行结束后,打印出之前的b值2000,由于执行m1方法,b值变为1000,所以之后的打印结果都是1000。
...全文
264
5
打赏
收藏
马士兵 多线程小例子
在原例子基础上加了一些标记的打印语句,出现了很多种结果,把m1方法中的Sleep语句注释掉后,截取了两个典型的结果。上半部分的结果我可以理解,关键是下半部分。是不是可以理解成m1方法执行之前已经将赋予b值将要打印,结果先执行了m1方法,m1方法执行结束后,打印出之前的b值2000,由于执行m1方法,b值变为1000,所以之后的打印结果都是1000。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dpflyee
2017-08-01
打赏
举报
回复
引用 4 楼 qq_37406215的回复:
有吗马老师的视频 哪里可以下载吗
我在尚学堂官网下载的
9524_
2017-08-01
打赏
举报
回复
有吗马老师的视频 哪里可以下载吗
dpflyee
2017-07-30
打赏
举报
回复
为啥代码的格式不对啊?
dpflyee
2017-07-30
打赏
举报
回复
public class TT implements Runnable { int b = 100; int i; public synchronized void m1() throws Exception{ System.out.println("m1执行开始,此时b=" + b); b = 1000; //Thread.sleep(5000); System.out.println("m1执行结束,此时b = " + b); } public synchronized void m2() throws Exception { System.out.println("m2执行开始,此时b=" + b); Thread.sleep(1000); b = 2000; System.out.println("m2执行结束,此时b=" + b); } public void run() { 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("空行1"); System.out.println(tt.b); System.out.println("空行2"); System.out.println(tt.b); System.out.println("空行3"); System.out.println(tt.b); System.out.println("空行4"); System.out.println(tt.b); System.out.println("空行5"); System.out.println(tt.b); System.out.println("空行6"); System.out.println(tt.b); System.out.println("空行7"); System.out.println(tt.b); System.out.println("空行8"); System.out.println(tt.b); System.out.println("空行9"); System.out.println(tt.b); System.out.println("空行10"); } }
dpflyee
2017-07-30
打赏
举报
回复
public class TT implements Runnable { int b = 100; int i; public synchronized void m1() throws Exception{ System.out.println("m1执行开始,此时b=" + b); b = 1000; //Thread.sleep(5000); System.out.println("m1执行结束,此时b = " + b); } public synchronized void m2() throws Exception { System.out.println("m2执行开始,此时b=" + b); Thread.sleep(1000); b = 2000; System.out.println("m2执行结束,此时b=" + b); } public void run() { 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("空行1"); System.out.println(tt.b); System.out.println("空行2"); System.out.println(tt.b); System.out.println("空行3"); System.out.println(tt.b); System.out.println("空行4"); System.out.println(tt.b); System.out.println("空行5"); System.out.println(tt.b); System.out.println("空行6"); System.out.println(tt.b); System.out.println("空行7"); System.out.println(tt.b); System.out.println("空行8"); System.out.println(tt.b); System.out.println("空行9"); System.out.println(tt.b); System.out.println("空行10"); } }
马士兵
高并发 java架构 预习课 源码
对
多线程
高并发编程学习的一个总结,整理了
多线程
在实际应用中的
例子
。主要参考了
马士兵
老师在java高并发编程公开课视频中的
例子
,并在此基础上进行学习和总结!
马士兵
高并发课程实例代码
马士兵
高并发课程实例代码 对
多线程
高并发编程学习的一个总结,整理了
多线程
在实际应用中的
例子
。主要参考了
马士兵
老师在java高并发编程公开课视频中的
例子
,并在此基础上进行学习和总结!
SpringBoot+Vue-Vben-Admin中台&后台前后端完整
等技术栈开发的项目,采用多模块,前后端分离开发。包括图形展示、权限管理、用户管理等功能。【后端技术】技术 说明Spring Boot2 MVC框架 开发的一站式解决方案Spring Security5 &...
尚学堂
马士兵
java
多线程
部分笔记
一、线程进程的基本概念 略…… 二、线程调用方式 1、继承Thread类 public class Test { public static void main(String[] args... // 执行
多线程
MyThread thread = new MyThread(); thread.start(); // 执行...
初学
多线程
与高并发(
马士兵
)
线程状态图 创建线程 package thread; //创建线程的三种方式 : 1、Thread ,2:Runnable, 3、Executor.newCachedThread (线程池) public class CreateThread { static class Thread1 extends Thread{ @Override ...
Java
50,530
社区成员
85,610
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章