半旧518
半旧518
全部文章
多线程
c语言(1)
git(5)
java web(11)
java8(3)
java基础语法(41)
jvm(32)
python(6)
后端前沿技术(2)
收藏(1)
数据库(4)
数据结构与算法(21)
未归档(1)
计算机网络(9)
谷粒商城(1)
谷粒学院(94)
踩坑(2)
题解(3)
归档
标签
去牛客网
登录
/
注册
吹灭读书灯
计算机专业课程、Java全栈开发
全部文章
/ 多线程
(共13篇)
多线程与高并发(13)——线程组
来自专栏
ThreadGroup用来表示线程组,他可以对一批线程进行分类管理。如果一个线程没有显示指定线程组,则该线程属于默认线程组。在默认情况下,父线程和子线程属于同一线程组。线程一旦指定线程组即不可以改变。 class MyThread extends Thread { public MyThre...
2021-07-13
0
503
多线程与高并发(12)——BlockingQueue
来自专栏
BlockingQueue主要用来控制线程通信,当生产者试图向阻塞队列中放入元素而BlockingQueue已满,则该线程被阻塞。当消费者试图向阻塞队列中取出元素而BlockingQueue已满,则该线程被阻塞。(这里元素添加、删除使用put(),take()方法才会阻塞,使用add()/offer...
2021-07-13
0
452
多线程与高并发(11)——使用condition进行线程通信
来自专栏
当程序中使用Lock(),unLock()作为线程通信的方式时,就不存在隐式的同步监视器,不能够使用wait()、notify()、notifyAll()进行线程通信了。Condition与Lock对象绑定,通过Lock对象的newCondition方法获得,可以让已经得到Lock对象却无法执行的线...
2021-07-08
0
440
多线程与高并发(10)——传统的线程通信wait(),notify(),notifyAll()
来自专栏
可以使用wait(),nitify(),notifyAll()来进行线程协作,这三个方法必须由同步监视器来调用。 下列定义一个Account类。该类存、取钱交替进行。 public class Account { private String accountNo; private d...
2021-07-02
0
410
多线程与高并发(9)——死锁
来自专栏
当两个线程互相等待对方的监视器时会发生死锁,所有线程处于阻塞状态,无法运行。在系统有多个监视器的情况下,死锁是很容易发生的。 class A { public synchronized void foo(B b) { System.out.println("Thre...
2021-07-02
0
431
多线程与高并发(8)——Lock
来自专栏
Lock是java5新增的同步机制,同步锁可以由Lock对象充当。某些锁可以允许对共享资源进行并发访问,比如ReentranReadWriteLock。Lock比同步方法与同步代码块更为灵活:比如有获取可中断锁的方法lockInterruptibly()方法,获取超时失效锁的tryLock(long...
2021-06-30
0
525
多线程与高并发(7)——同步代码块与同步方法
来自专栏
(1)同步代码块 为了避免并发造成的问题,java设计了同步机制,推荐对于可能被并发访问的共享资源充当同步监视器,比如上面程序可以使用account作为同步监视器,通过这种方式可以保证同一时刻只有一个线程访问修改共享资源的代码区(临界区)。 public class DrawThread exten...
2021-06-28
0
489
多线程与高并发(6)——经典同步问题:银行取钱
来自专栏
多线程编程常常会出现各种安全问题,银行取钱是一个经典的线程安全问题。 public class Account { private String accountNo; private double balance; public Account() {} public...
2021-06-21
0
641
多线程与高并发(5)——控制线程
来自专栏
1)join线程可以使用join()将一个大问题划分为若干小问题,每一个小问题分配一个线程。当执行该方法时,调用线程将被阻塞,直到被加入的线程执行结束再执行调用线程。 public class JoinThread extends Thread { public JoinThread(Str...
2021-06-20
0
537
多线程与高并发(4)——线程的生命周期
来自专栏
线程的生命周期参考下图。 我们可以通过调用线程的start()方法来启动一个线程,注意不要直接调用run()方法,否则系统会把线程对象当成一个普通对象,把run()方法当成一个普通方法,而不是线程执行体,并立即执行该方法,在run()方法返回之前其它线程无法并发执行。启动线程后线程处于就绪状态。...
2021-06-20
0
472
首页
上一页
1
2
下一页
末页