并发
文章平均质量分 81
hulinku
这个作者很懒,什么都没留下…
展开
-
进程和线程的联系及区别
1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系转载 2018-01-25 12:21:19 · 178 阅读 · 0 评论 -
死锁小程序
//死锁小程序,经常发生在同步中嵌套同步public class DeadLock { public static void main(String[] args) { new Thread(new DeadLockThread(true)).start(); // 如果让线程休眠一毫秒,发现有时能锁上有时锁不上。休眠两毫秒基本锁不上。// 这说明判断锁还是比较耗时的操原创 2018-01-25 21:13:32 · 408 阅读 · 0 评论 -
生产者消费者问题
public class ProducerConsumer { public static void main(String[] args) { SyncStack ss = new SyncStack(); Producer p = new Producer(ss); Consumer c = new Consumer(ss); new Thread(p).start();原创 2018-01-27 14:46:00 · 223 阅读 · 0 评论 -
java线程状态图
关于java线程状态,网上有很多错误的图。下面是个人认为比较合理的解释。由Thread.State的定义可知,java中线程共有6种状态:1. NEW至今尚未启动的线程处于这种状态。 2. RUNNABLE正在 Java 虚拟机中执行的线程处于这种状态。 3. BLOCKED受阻塞并等待某个监视器锁的线程处于这种状态。 4. WAITING无限期地等待另一个原创 2018-01-27 16:25:48 · 675 阅读 · 0 评论 -
并发内存模型和volatile
在多线程环境中,我们需要考虑的主要问题是:线程之间如何进行通信,在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显式进行通信。Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式进行,整个通信过转载 2018-03-21 21:02:43 · 143 阅读 · 0 评论 -
this引用逃逸
this逃逸就是说,在构造函数返回之前,其他线程就已经取得了该对象的引用,由于构造函数还没有完成,所以,对象也可能是残缺的,所以,取得对象引用的线程使用残缺的对象极有可能发生错误的情况,因为这两个线程是异步的,取得对象引用的线程并不一定会等待构造对象的线程完结后在使用引用。this逃逸经常发生在构造器中启动新线程的时候,如:public class ThreadThisEscape { ...原创 2018-03-21 21:25:05 · 789 阅读 · 0 评论 -
线程池原理
线程池的优点1、线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。2、可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。线程池的创建1 public ThreadPoolExecutor(int corePoolSize,2 int maximumPool...转载 2018-09-29 21:04:57 · 208 阅读 · 0 评论