java线程高级开发
shursulei
个人github:https://github.com/shursulei/
展开
-
5、ThreadLocals实现线程范围内的共享变量
线程范围内的共享数据 1、未实现线程共享变量 package cn.itcast.heima2; import java.util.HashMap; import java.util.Map; import java.util.Random; public class ThreadScopeShareData { private转载 2017-06-04 17:39:47 · 285 阅读 · 0 评论 -
6、多个线程的共享数据
1、方式 1,如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,卖票系统就可以这么做。2,如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,例如,设计4个线程。其中两个线程每次对j增加1,另外两个线程对j每次减1,银行存取款卖票系统:package cn.itcast.thread; /** * 多原创 2017-06-05 20:16:18 · 267 阅读 · 0 评论 -
7、线程并发库
AtomicInteger、locks原创 2017-06-05 20:24:12 · 221 阅读 · 0 评论 -
java线程面试题 (一)
第一题:现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象。 方法的注意: 大家只要将上面任何一题的完整代码复制到eclipse中的某个工程的src目录下,就可以自动生成包名和文件名,运行该程序就可以观察到程序修改前的运行效果。 源代码:packag原创 2017-06-05 21:06:23 · 324 阅读 · 0 评论 -
3、线程的同步互斥技术和通信
线程安全问题可以用银行转帐来解释 使用synchronized 一、synchronized作函数修饰符 public synchronized void fun() { …….. } 等同于public void fun() { synchronized(this) // this指的是调用这个方法的对象 { …… } }二、synchronized同步程序块原创 2017-06-03 20:10:51 · 353 阅读 · 0 评论 -
2、java的定时器
1、java的定时器package cn.itcast.thread;import java.util.Date; import java.util.Timer; import java.util.TimerTask;public class TraditionTimer { public static void main(String[] args) { // TODO Au原创 2017-06-03 19:04:43 · 235 阅读 · 0 评论 -
4、线程同步通信
子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50,请写出程序。package cn.itcast.thread;public class TraditionalComuication { public static void main(String[] args) { // TODO Auto-generated原创 2017-06-03 21:13:21 · 312 阅读 · 0 评论