![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java线程
浪中的小舟
这个作者很懒,什么都没留下…
展开
-
java线程九之饥饿死锁,死锁与活锁
1.老规矩的吐槽,网上查这块内容的时候,全是理论方面的说明和复制粘贴,没找到一个完全用代码说明的例子。2.饥饿死锁直接上代码:/** * Created by * Date : 2018/7/19 18:12 */public class Main { public static void main(String[] args){ final Exe...原创 2018-07-20 13:03:55 · 647 阅读 · 0 评论 -
java线程八之Callable
1.Callable是干什么用的?前一个章节关于线程池的,但是小伙伴们有没有发现,这些线程池虽然能正常跑线程,但如果遇到获取每个线程执行后返回的值时就显得力不从心了。Future中的参数Runnable也不能返回线程返回的值,因为它是void类型的返回值。所以如果要获取线程执行后返回的值就要靠Callable了。2.直接上代码:/** * Created by * Date :...原创 2018-07-19 17:37:27 · 271 阅读 · 0 评论 -
java线程七之线程池
1.java常用的线程池ExecutorService cachedThreadPool = Executors.newCachedThreadPool();//缓存线程池ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);//固定大小线程池ExecutorService singleThreadExecut...原创 2018-07-19 17:10:17 · 172 阅读 · 0 评论 -
java线程六之闭锁,栅栏与计数信号量
先直接上各个的示例,再看各自的区别。1.闭锁,等待锁的计数器为0才会执行,否则会一直等待,示例如下:/** * Created by * Date : 2018/7/19 10:33 * 闭锁 */public class Main { private CountDownLatch countDownLatch=new CountDownLatch(3); p...原创 2018-07-19 12:02:58 · 605 阅读 · 0 评论 -
java线程五之Lock
1.有了synchronized,为什么还用Lock?Lock的应用场景解决获取锁的等待问题如果使用synchronized,线程A要想释放锁,要么线程A执行完毕,要么线程A执行发生异常才能释放锁。当线程A执行遇到阻塞等情况,线程B要想获取这个锁,必须一直等到线程A释放锁后才能获取锁并执行线程B的程序。而使用用Lock的tryLock(Long time)方法,可以使线程只等待一定的...原创 2018-07-18 17:36:15 · 252 阅读 · 0 评论 -
java线程四之线程的方法
不知道怎么回事,先写在word文档上的,但是保存后变的很乱。。1.锁对象的方法:wait(),notify(),notifyAll()2.线程的方法:join(),interrupt(),sleep() ,其中stop(),suspend()由于不安全,已经建议不再使用3.Wait()方法释放锁并让自己一直处于等待状态。看下面的例子:/** * Created by...原创 2018-07-17 11:11:29 · 163 阅读 · 0 评论 -
java线程三之安全与不安全
1. 线程不安全的情况a) 竞态条件,也就是先检查后执行、查询-修改-更新等复合操作举例如下:public class Test { private int i=0; public void test()throws Exception{ Thread.sleep(1000); i=i+1; System....原创 2018-07-09 13:32:01 · 152 阅读 · 0 评论 -
java线程二之synchronized
1. 当存在多个线程操作共享数据时,必须要保证在同一时刻有且只有一个线程在操作共享数据,其它线程必须等到该线程处理完后再进行操作。在java中,用关键字synchronized可以做到这一点。 2. Synchronized有三种应用方式a) 修饰代码块Synchronized(this){ doSomething();}b) ...原创 2018-07-03 10:50:06 · 105 阅读 · 0 评论 -
java线程一之volatile
1. 什么叫线程安全?当多个线程访问某个类时,这个类始终能表现出正确的行为,我们称这个类是线程安全的 2. Java内存模型,也就是java线程是如何存取共享变量的Java的所有变量都存储在主内存中,每个线程都有自己独立的工作内存,每创建一个线程,则会为该线程分配一个独立的工作内存,线程与线程之间的工作内存不可相互调用。线程在操作变量时,会从主内存中将变量拷...原创 2018-07-02 15:06:59 · 154 阅读 · 0 评论