![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA多线程
也许是我送你哦~
这个作者很懒,什么都没留下…
展开
-
java8 异步编排优化
java8 异步编排优化CompletableFuture是JDK8提出的一个支持非阻塞的多功能的Future,同样也是实现了Future接口CompletableFuture接口提供了非常多的方法用于编排异步任务基本每个方法都有两套方法,Async版本的函数与非Async版本的函数。若方法不以Async结尾,意味着Action使用相同的线程执行,而Async可能会使用其它的线程去执行(如果使用相同的线程池,也可能会被同一个线程选中执行)1.创建线程池//创建连接池ThreadPoolExecu原创 2021-03-04 13:49:16 · 941 阅读 · 2 评论 -
Java多线程实现的方式有四种
Java多线程实现的方式有四种1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3.通过Callable和FutureTask创建线程4.通过线程池创建线程前面两种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void,所以没有办法返回结果后面两种可以归结成一类:有返回值,通过Callable接口,就要实现call方法,这个方法的返回值是Object,原创 2021-03-04 13:44:39 · 193 阅读 · 1 评论 -
一、关于JAVA中多线程的介绍
多线程进程是一个正在执行中的程序每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元线程就是进程中一个独立的控制单元。一个进程中至少有一个线程多线程存在的意义线程的创建方式多线程的特性JAVA VM启动的时候会有一个进程java.exe该线程中至少一个线程负责Java程序的执行,而且这个线程运行的代码在Main方法中该线程称为主线程垃圾回收也是一个线...原创 2019-04-12 00:44:20 · 150 阅读 · 0 评论 -
二、JAVA中创建多线程的方式
创建线程方式一继承Thread类1.子类覆盖父类中的run方法,将线程运行的代码存放在run方法中2.建立子类对象的同事线程也被创建3.通过start方法开启线程原来线程都有自己默认的名称Thread-X**Static currentThread():获取当前线程对象,返回对当前正在执行的线程对象的引用。getName():设置现成的名称设置线程名称:setName()或...原创 2019-04-12 00:49:24 · 114 阅读 · 0 评论 -
三、关于JAVA的线程安全问题
多线程的运行出现了安全问题问题的原因:当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个参与进来执行,导致共享数据的错误解决办法:对多条操作共享数据的语句,只能让一个线程都执行完。在执行过程中,其他线程不可以参与执行JAVA对于多线程的安全问题提供了a专业的解决方式就是同步代码块synchronized(对象){需要被同步的代码}对象如...原创 2019-04-12 00:53:17 · 87 阅读 · 0 评论 -
四、关于单例模式下的线程安全问题!必须要会!!!!!
饿汉式/** * 饿汉式 * @author Administrator * */class Single{ private static final Single s=new Single(); private Single() { } public static Single getInstance() { return s; }}懒汉式一/** * ...原创 2019-04-12 00:56:08 · 210 阅读 · 0 评论 -
五、JAVA中写死锁
死锁:同步中嵌套同步package com.hyf.deadLock;/** * 死锁程序 * @author Administrator * */public class DeadLock { public static void main(String[] args) { // TODO Auto-generated method stub Thread t1=new ...原创 2019-04-12 00:57:31 · 151 阅读 · 1 评论 -
六、线程间通信问题(线程中常用的方法)
线程间通信思考1:wait()、notify()、notifyAll()用来操作线程为什么定义在Object类中?1.这些方法存在于同步中2.使用这些方法时必须要标识所属的锁3.锁可以是任意对象,所以任意对象调用的方法一定定义Object类中思考2:wait()、sleep()有什么区别?Wait():释放资源、释放锁Sleep():释放资源,不释放锁线程间通讯:其实就是多个线程...原创 2019-04-15 02:07:44 · 498 阅读 · 0 评论 -
七、多线程的写法(实际开发过程中常用匿名内部类的方式开启线程)
实际开发过程中常用匿名内部类的方式开启线程package threadTest;public class ThreadTest { public static void main(String[] args) { // TODO Auto-generated method stub new Thread() { public void run() { } }....原创 2019-04-15 02:13:28 · 392 阅读 · 0 评论