
JAVA多线程
也许是我送你哦~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java8 异步编排优化
java8 异步编排优化 CompletableFuture是JDK8提出的一个支持非阻塞的多功能的Future,同样也是实现了Future接口 CompletableFuture接口提供了非常多的方法用于编排异步任务基本每个方法都有两套方法,Async版本的函数与非Async版本的函数。 若方法不以Async结尾,意味着Action使用相同的线程执行,而Async可能会使用其它的线程去执行(如果使用相同的线程池,也可能会被同一个线程选中执行) 1.创建线程池 //创建连接池 ThreadPoolExecu原创 2021-03-04 13:49:16 · 1007 阅读 · 2 评论 -
Java多线程实现的方式有四种
Java多线程实现的方式有四种 1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3.通过Callable和FutureTask创建线程 4.通过线程池创建线程 前面两种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void,所以没有办法返回结果 后面两种可以归结成一类:有返回值,通过Callable接口,就要实现call方法,这个方法的返回值是Object,原创 2021-03-04 13:44:39 · 239 阅读 · 1 评论 -
一、关于JAVA中多线程的介绍
多线程 进程 是一个正在执行中的程序 每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元 线程 就是进程中一个独立的控制单元。一个进程中至少有一个线程 多线程存在的意义 线程的创建方式 多线程的特性 JAVA VM启动的时候会有一个进程java.exe 该线程中至少一个线程负责Java程序的执行,而且这个线程运行的代码在Main方法中 该线程称为主线程 垃圾回收也是一个线...原创 2019-04-12 00:44:20 · 186 阅读 · 0 评论 -
二、JAVA中创建多线程的方式
创建线程方式一 继承Thread类 1.子类覆盖父类中的run方法,将线程运行的代码存放在run方法中 2.建立子类对象的同事线程也被创建 3.通过start方法开启线程 原来线程都有自己默认的名称 Thread-X **Static currentThread(): 获取当前线程对象,返回对当前正在执行的线程对象的引用。 getName():设置现成的名称 设置线程名称:setName()或...原创 2019-04-12 00:49:24 · 145 阅读 · 0 评论 -
三、关于JAVA的线程安全问题
多线程的运行出现了安全问题 问题的原因: 当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个参与进来执行,导致共享数据的错误 解决办法: 对多条操作共享数据的语句,只能让一个线程都执行完。在执行过程中,其他线程不可以参与执行 JAVA对于多线程的安全问题提供了a专业的解决方式 就是同步代码块 synchronized(对象){ 需要被同步的代码 } 对象如...原创 2019-04-12 00:53:17 · 210 阅读 · 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 · 257 阅读 · 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 · 187 阅读 · 1 评论 -
六、线程间通信问题(线程中常用的方法)
线程间通信 思考1:wait()、notify()、notifyAll()用来操作线程为什么定义在Object类中? 1.这些方法存在于同步中 2.使用这些方法时必须要标识所属的锁 3.锁可以是任意对象,所以任意对象调用的方法一定定义Object类中 思考2:wait()、sleep()有什么区别? Wait():释放资源、释放锁 Sleep():释放资源,不释放锁 线程间通讯: 其实就是多个线程...原创 2019-04-15 02:07:44 · 548 阅读 · 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 · 433 阅读 · 0 评论