![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
liaoguolingxian
这个作者很懒,什么都没留下…
展开
-
java多线程:1、Thread实现
java线程实现分为以下两种方式: 1、继承Thread方法 通过继承Thread方法覆盖Thread的run方法 new Thread(){ @Override public void run() { // TODO Auto-generated method stub System.out.println("Th原创 2017-04-09 00:15:07 · 267 阅读 · 0 评论 -
java多线程:12、CyclicBarrier同步辅助类
说明一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。import java.awt.MultipleGradientPaint.CycleMethod原创 2017-04-10 13:09:19 · 307 阅读 · 0 评论 -
java多线程:13、CountDownLatch同步辅助类【计数器】
使用CountDownLatch计数器模拟赛跑比赛import java.util.Random;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** *模拟赛跑比赛 *要求: *1、裁原创 2017-04-10 13:38:25 · 252 阅读 · 0 评论 -
java多线程:14、Exchanger同步辅助类
两个线程之间进行数据交换的工具类import java.util.Random;import java.util.concurrent.Exchanger;/** *Exchanger *只有当两个线程同时执行到exchange时,进程才能继续往下执行,否者线程等待 */public class ThreadTest2 { public static void main(String原创 2017-04-10 15:50:50 · 218 阅读 · 0 评论 -
java多线程:15、阻塞队列【BlockingQueue】
当队列为空时取数据的线程堵塞,当队列满时放数据的新车堵塞import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.Exchanger;/** *阻塞队列 */publ原创 2017-04-10 16:57:26 · 269 阅读 · 0 评论 -
java多线程:16、阻塞队列【BlockingQueue】实现线程数据共享的效果
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/** *阻塞队列BlockingQueue 实现线程通信的效果 *A、B连个线程交替执行任务 */public class ThreadTest2 { public static void main(Str原创 2017-04-10 17:11:17 · 552 阅读 · 0 评论 -
java多线程:17、面试题1
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/** *程序代码模拟产生16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程4s完成日志日志输入 * *public static void main(String[] args) {原创 2017-04-10 22:16:45 · 241 阅读 · 0 评论 -
java多线程:18、面试题2
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.Semaphore;import java.util.concurrent.SynchronousQueue;/** * 创建10个线程,依次获取生产者生成的数原创 2017-04-10 22:37:18 · 278 阅读 · 0 评论 -
java多线程:3、线程通讯
面试题:主线程运行10次,子线程运行10次;主、子线程交替执行50次/** * 线程通讯 * 要求: * 主线程运行10次,子线程运行10次 * 主、子线程交替执行50次 * */public class ThreadTest2 { public static void main(String[] args) { final Business business=n原创 2017-04-09 14:35:13 · 203 阅读 · 0 评论 -
java多线程:11、信号量【Semaphore】
import java.util.HashMap;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concu原创 2017-04-09 23:24:02 · 457 阅读 · 0 评论 -
java多线程:10、阻塞队列【Condition】
使用Condition实现阻塞队列【也就是大学时候操作系统那门课上学的生产中、消费者问题】/** * 阻塞队列【生成者、消费者模型】 * */class BlockingQueue{ private Object[] queue=new Object[100]; private int getIndex=0,putIndex=0,count=0; final Lock l原创 2017-04-09 22:27:55 · 372 阅读 · 0 评论 -
java多线程:2、Timer实现
Timer简单使用实例1S后调度任务执行new Timer().schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub System.out.println("1S后调度任务执行"); }}, 1000);1S后调度任务原创 2017-04-09 00:30:46 · 229 阅读 · 0 评论 -
java多线程:3、线程互斥
多线程互斥问题在生活中随处可见,如买票、银行转账等等。。。实例代码:public class ThreadTest2 { final SysOut sysOut=new SysOut(); public static void main(String[] args) { ThreadTest2 test=new ThreadTest2(); new Thr原创 2017-04-09 13:42:48 · 310 阅读 · 0 评论 -
java多线程:4、线程范围内的数据共享_公共变量
直接上实例,注意事项已经在程序中做了注释,以此共勉。加油import java.util.Map;import java.util.Random;import java.util.concurrent.ConcurrentHashMap;/** *线程范围内的共享变量 */public class ThreadTest2 { /** * * 如果在这个地方错误原创 2017-04-09 16:32:06 · 491 阅读 · 0 评论 -
java多线程:5、线程范围内的数据共享_ThreadLocal
上一节使用共享变量的方式实现了变量与线程绑定的情景,本节使用JDK自己提供的ThreadLocal对象更便捷的实现变量与线程绑定的情景import java.util.Random;/** *线程范围内的共享变量 ThreadLocal */public class ThreadTest2 { public static void main(String[] args) {原创 2017-04-09 17:32:22 · 383 阅读 · 0 评论 -
java多线程:6、模拟卖票
多线程练手,模拟买票/** * */public class ThreadTest2 { public static void main(String[] args) { Ticket ticket=new Ticket(); for(int i=0;i<3;i++){ new Thread(ticket).start();原创 2017-04-09 18:29:30 · 317 阅读 · 0 评论 -
java多线程:7、线程池创建
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/** *线程池 */public class原创 2017-04-09 19:31:36 · 226 阅读 · 0 评论 -
java多线程:8、初用Lock
Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也是应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,他们必须使用的是用一个Lock对象。锁是上在代表要操作的资源的类的内部方法中,而不是线程代码中。import java.util.concurrent.ExecutorService;import java.util.concurrent.Ex原创 2017-04-09 20:26:33 · 189 阅读 · 0 评论 -
java多线程:9、读写锁实现Cache
class CacheDemo{ Map<String,Object> map=new HashMap<String,Object>(); private ReadWriteLock rwl=new ReentrantReadWriteLock(); public Object getDate(String key){ rwl.readLock().lock();原创 2017-04-09 21:17:48 · 583 阅读 · 0 评论 -
java中四种线程池及poolSize、corePoolSize、maximumPoolSize
转载自:https://blog.csdn.net/chzphoenix/article/details/78968075Executors提供四种线程池:newCachedThreadPool :缓存线程池,如果线程池长度超过处理需要,可回收空闲线程,若无可回收,则新建线程。newFixedT...转载 2018-07-17 19:10:12 · 3409 阅读 · 1 评论