最新 最热

到底什么是重入锁?拜托,一次搞清楚!

JDK中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的...

2021-11-26
1

深入理解同步和异步、阻塞和非阻塞、并行和串行这几个概念

如果之前有同学看过我的 《我眼中的Java大牛之孤尽老师》 这篇文章,就会发现里面已经提及一二,遗憾的是大多数同学都是遇到问题的时候才想着去问去看。...

2021-11-25
1

TCP connection timed out:110 (Scrapy)

使用 scrapy 的时候 ,莫名出现了 ‘‘TCP 连接超时’’ 的错误 ,错误状态码110

2021-11-22
1

C|并发编程|互斥锁实现

锁Lock,正如现实中的锁一样,决定了对于资源的访问权。在并发编程中,由于资源共享的缘故,一个线程中的write操作有可能影响到另一个线程的read操作。...

2021-11-22
0

Go - 使用 sync.WaitGroup 来实现并发操作

如果你有一个任务可以分解成多个子任务进行处理,同时每个子任务没有先后执行顺序的限制,等到全部子任务执行完毕后,再进行下一步处理。这时每个子任务的执行可以并发处理,这种情景下适合使用 sync.WaitGroup。...

2021-11-11
0

JavaWeb 基础知识 --多线程(阻塞队列+生产消费者模型)

BlockingQueue 是Java标准库中提供的 阻塞队列,底层是由链表、数组实现的,

2021-11-10
0

一文详解,死锁与解决方案(附源码)

想象一个场景,账户A给账户B转账,同时账户B也给账户A转账,两个账户都需要锁住余额,所以通常会申请两把锁,转账时,先锁住自己的账户,并获取对方的锁,保证同一时刻只能有一个线程去执行转账。...

2021-11-10
1

Task异常捕获的方式

当Task运行中出现了异常,正常情况下我们在主线程的Try是捕获不到的,而如果在Task内部写try,出现了异常我们会完全不知道。下面就来介绍几个主线程捕获Task异常的方法。...

2021-11-05
0

Java并发编程:任务的取消和关闭

任务和线程的启动很容易。在大多数时候,我们都会让它们运行直到结束,或者让它们自行停止。然而,有时候我们希望提前结束任务或线程,或许是因为用户取消了操作,或者应用程序需要被快速关闭。...

2021-11-04
1

Go - 使用 sync.WaitGroup 来实现并发操作

如果你有一个任务可以分解成多个子任务进行处理,同时每个子任务没有先后执行顺序的限制,等到全部子任务执行完毕后,再进行下一步处理。这时每个子任务的执行可以并发处理,这种情景下适合使用 sync.WaitGroup。...

2021-11-02
0