摘要: 一、概念 Semaphore是一个计数信号量,常用于限制可以访问某些资源(物理或逻辑的)线程数目。 一个信号量有且仅有3种操作,且它们全部是原子的:初始化、增加和减少 增加可以为一个进程解除阻塞; 减少可以让一个进程进入阻塞。 和线程池的区别:使用Seamphore,创建了多少线程,实际就会有多少线 阅读全文
posted @ 2019-03-31 23:43 爱国呐 阅读(2272) 评论(0) 推荐(1) 编辑
摘要: 上次介绍了Callable实现多线程的方法。现在介绍和Callable搭配的类。上一篇只是简单的用Callable做了一个demo。 一、Future 1.关于callable和runable的区别(上次已经介绍) Callable可以在任务结束的时候提供一个返回值Future对象,Runnable 阅读全文
posted @ 2019-03-31 23:43 爱国呐 阅读(1583) 评论(0) 推荐(0) 编辑
摘要: 一、阻塞队列 1.介绍阻塞队列会对当前线程产生阻塞,比如一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了元素。当队列中有元素后,被阻塞的线程会自动被唤醒(不需要我们编写代码去唤醒)。 2.实现ArrayBlockingQueue:基于数组实现的一个阻塞队列,在创建ArrayBl 阅读全文
posted @ 2019-03-31 23:42 爱国呐 阅读(5820) 评论(2) 推荐(0) 编辑
摘要: 一、线程的基本概念 1.程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting、waiting、消亡(dead) 2.java中线程分为两种类型:用户线程和守护线程。 如果JVM中所有的线程都是守护线程,那么JVM就会 阅读全文
posted @ 2019-03-31 23:41 爱国呐 阅读(300) 评论(0) 推荐(0) 编辑