并发与多线程
自傷無色丶
这个作者很懒,什么都没留下…
展开
-
Java并发库入门---线程连接池
本篇博文为自己学习时的记录,难免有错误的地方,欢迎大家讨论指出原创 2019-01-18 22:38:49 · 571 阅读 · 0 评论 -
单线程模式的生产者消费者案例
消费者与生产者问题是多线程中比较经典的问题之一,在学习并发编程中往往会针对这个问题来讲解程序的设计及思想,下面实现一个简单的单线程生产者与消费者模式。public class Producer_Consumer { private int i = 0; Object LOCK = new Object(); private boolean isProduce = false;...原创 2019-05-01 18:47:14 · 801 阅读 · 0 评论 -
三个线程循环打印ABC
采用synchronized,wait,notifyAll实现,要实现这个功能,如Thread A >>A ,Thread B>>B,Thread C >>C,按顺序执行,那么我们需要让线程持有两个锁,一个是前一个打印线程对应的锁,一个是自己的锁,当线程同时获取到两个锁时,可以执行打印,打印结束后,释放自己的锁并唤醒其他等待该锁的线程,同时调用wait释放前一个...原创 2019-05-02 18:34:32 · 4484 阅读 · 4 评论 -
暴力结束线程案例
结束线程我们常用的有两种方式,一种是通过interrupted方法判断线程是否处于打断状态,还有一种是设置一个标志位,如下interruptedpackage forceclose;public class MyThread extends Thread { @Override public void run() { while(true){ if(Thread.int...原创 2019-05-01 12:47:08 · 296 阅读 · 0 评论 -
设计四个线程,两个线程对j+1,两个线程对j-1
自己的解法:public class FourThread { private int j; Object o = new Object(); class A extends Thread { @Override public void run() { synchronized (o) { j++; System.out.println(Thread.c...原创 2019-05-14 19:55:19 · 570 阅读 · 0 评论 -
Java并发之CAS机制
我们先看一段代码:启动两个线程,每个线程中让静态变量count循环累加100次。最终输出的count结果一定是200吗?因为这段代码是非线程安全的,所以最终的自增结果很可能会小于200。我们再加上synchronized同步锁,再来看一下。加了同步锁之后,count自增的操作变成了原子性操作,所以最终输出一定是count=200,代码实现了线程安全。虽然synchroni...转载 2019-05-21 22:40:34 · 207 阅读 · 1 评论 -
CopyOnWriteArrayList解读
前一阵子写过一篇COW(Copy On Write)文章,结果阅读量很低啊...COW奶牛!Copy On Write机制了解一下可能大家对这个技术比较陌生吧,但这项技术是挺多应用场景的。除了上文所说的Linux、文件系统外,其实在Java也有其身影。大家对线程安全容器可能最熟悉的就是ConcurrentHashMap了,因为这个容器经常会在面试的时候考查。比如说,一个常见的面试...转载 2019-06-05 14:56:08 · 251 阅读 · 0 评论 -
ExecutorService中submit和execute的区别
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。一、创建任务任务就是一个实现了Runnable接口的类。创建的时候实run方法即可。二、执行...转载 2019-06-18 11:41:54 · 2226 阅读 · 0 评论