多线程
来一杯java压压惊
这个作者很懒,什么都没留下…
展开
-
使用多线程并处理子线程异常数据的处理结果(非阻塞)
主线程处理线程池子线程异常数据(非阻塞方式)原创 2022-11-01 09:49:00 · 181 阅读 · 1 评论 -
使用Redisson配置redis
多线程使用Redisson配置redis原创 2022-11-01 09:42:50 · 2814 阅读 · 0 评论 -
多线程——线程池
线程池概述程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。线程池的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。在JDK5之前,我们必须手动实现自己的线程池,从JDK5开始,java内置支持线程池。java的内置线程池1.JDK5新...原创 2020-02-10 23:36:33 · 145 阅读 · 0 评论 -
多线程——线程组的概念和使用
线程组概述1.java中使用ThreadGroup 来表示线程组,它可以对一批线程进行分类管理,java允许程序直接对线程组进行控制。2.默认情况下,所有的线程都属于主线程组。public final ThreadGroup getThreadGroup()//通过线程对象获取他所属的线程组public final String getName()//通过线程组对象获取线程组的名字3.我...原创 2020-02-10 23:04:49 · 274 阅读 · 0 评论 -
多线程——互斥锁
同步加锁使用ReentrantLock类的lock和unlock方法进行同步通信使用ReentrantLock类的newCondition方法可以获取Condition对象,需要等待的时候使用Conditionde await方法,唤醒的时候用signal方法,不同的线程使用不同的Condition,这样就能区分唤醒的时候找那个线程了public static void main(Stri...原创 2020-02-10 15:43:29 · 361 阅读 · 0 评论 -
多线程——线程间的通信
什么时候需要通信?多个线程并发执行是,在默认情况下CPU是随机切换线程的,如果我们希望他们有规律的执行,就可以使用通信,例如每个线程执行一次打印。怎么通信?1.如果希望线程等待,就调用wait()2.如果希望唤醒等待的线程,就用notify()3.这两个方法必须在同步代码中执行,并且使用同步锁对象来调用1.两个线程间的通信...原创 2020-02-10 15:24:17 · 133 阅读 · 0 评论 -
Timer——计时器、定时器
Timer是一种工具,用于在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。方法:public void schedule(TimerTask task,long delay):几秒后执行任务//1.创建定时器Timer timer =new Timer();//2.执行任务//3.3秒后执行任务,任务执行完毕,程序没有退出timer.schedule(new Time...原创 2020-02-08 01:00:24 · 386 阅读 · 0 评论 -
多线程——同步代码块和同步方法
**什么时候需要同步?1.当多线程并发,有多段代码同时执行时,我们希望某一段代码执行的过程中CPU不要切换到其他线程工作,这时就需要同步。2.如果两段代码是同步的,那么同一时段只能执行一段,在一段代码没有执行结束之前,不会执行另外一段代码。**同步代码块1.使用synchronized关键字加上一个锁对象来定义一段代码,这就叫同步代码块2.多个同步代码块如果使用相同的锁对象,那么他们就...原创 2020-02-06 23:43:45 · 447 阅读 · 0 评论 -
多线程——守护线程、加入线程、礼让线程、设置线程优先级
setDaemon(true),设置一个线程为守护线程,该线程不会单独执行,当其他非守护线程都执行结束后,自动退出。原创 2020-02-06 22:25:44 · 440 阅读 · 0 评论 -
多线程——线程的休眠
Thread.sleep(毫秒 )子线程中休眠new Thread(){public void run(){for(int i=0;i<10;i++){System.out.println(i);try{Thread.sleep(1000);}catch(InterruptedException e){e.printStackTrace();}}};}.start(...原创 2020-02-06 21:57:32 · 315 阅读 · 0 评论 -
多线程——获取线程名字和设置线程名字
1.获取线程名字通过Thread的getName方法获取线程对象名字//获取主线程对象Thread mainThread=new Thread();System.out.println("名称"+mianThread.getName());2.设置线程名称通过setName(String)方法设置线程对象的名字Thread thread=new Thread();thread.s...原创 2020-02-05 23:58:20 · 727 阅读 · 0 评论 -
多线程——匿名内部类实现线程的方式
第一种Thread t=new Thread(){@Overridepublic void run(){System.out.println("任务1....."+Thread.currentThread());//当前线程名称}};t.start();上述方式的简写new Thread(){@Overridepublic void run(){System.out.pr...原创 2020-02-05 23:41:57 · 183 阅读 · 0 评论 -
多线程的概念
**线程是程序执行的一条路径,一个进程中可以包含多条线程。 **1.多线程并行和并发的区别并行就是两个任务同时运行,就是甲任务运行的同时,乙任务也在运行(需要多核CPU)。并发是指两个任务都请求运行,而处理器只能接受一个任务,就把这两个任务安培轮流运行,由于时间间隔较短,使人感觉两个任务都在运行。2.线程的实现方式1——继承Thread类1.使用步骤a.定义类继承Threadb.从写...原创 2020-02-05 23:02:30 · 105 阅读 · 0 评论