最原始的方式,当我们要并行的或者异步的执行一个任务的时候,我们会直接使用启动一个线程的方式,如下面所示: new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub 这里放你 ...
分类:
编程语言 时间:
2020-03-21 18:26:28
阅读次数:
73
1.进程与线程的区别 2.Thread中start和run的区别 run方法会沿用主线程调用,而start方法会创建一个新的子线程 3.Thread和Runnable的关系 Runnable是接口,Thread是类 4.如何实现处理线程的返回值 5.线程的状态 六个状态: 新建(New):创建后尚未 ...
分类:
编程语言 时间:
2020-03-20 12:41:17
阅读次数:
73
管道流 在Java语言中提供了各种各样的输入/输出流 Stream ,使我们能够很方便地对数据进行操作,其中管道流是一种特殊的流,用于在不同线程间直接传送数据。一个线程发送数据到输出管道流,另一个线程从输入管道流中读取数据。 通过使用管道,实现不同线程间的通信,而无须借助于类似临时文件之类的东西。 ...
分类:
编程语言 时间:
2020-03-20 00:45:26
阅读次数:
73
单生产者与单消费者 示例: public class ProduceConsume { public static void main(String[] args) { String lock = new String(""); Produce produce = new Produce(lock) ...
分类:
编程语言 时间:
2020-03-18 23:56:02
阅读次数:
118
前言 转自 https://www.cnblogs.com/xrq730/p/5060921.html 40个问题汇总 1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么 ...
分类:
编程语言 时间:
2020-03-18 11:39:42
阅读次数:
63
Executors提供了三个经典的线程池创建方式 ExecutorService threadPool = Executors.newFixedThreadPool(int) ExecutorService threadPool = Executors.newSingleThreadPool()Ex ...
分类:
编程语言 时间:
2020-03-16 12:54:57
阅读次数:
56
3个结论 synchronized(非this对象 x) 是将 x 对象本身作为“对象监视器”,因此有如下三个结论: 1)当多个线程同时执行 synchronized(x){}同步代码块时呈同步效果 2)当其他线程执行 x 对象中 synchronized 同步方法时呈同步效果 3)当其他线程执行 ...
分类:
编程语言 时间:
2020-03-15 19:04:26
阅读次数:
82
创建方式: 方式一:继承Thread. 自定义一个类继承Thread类。 重写Thread的run方法,把自定义线程的任务代码定义在run方法上。 创建Thread子类的对象,并且调用start方法启动一个线程。 java public synchronized void set(String na ...
分类:
编程语言 时间:
2020-03-15 09:36:38
阅读次数:
48
public class Accout { private static Account account = new Account(); public static void main(String[] args) { ExecutorService executor = Executors.ne ...
分类:
编程语言 时间:
2020-03-14 22:07:05
阅读次数:
70