![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
线程
线程相关
learning_learning
哈哈,本人很懒
展开
-
线程池
一 为什么使用线程池?在不使用线程池的情况下,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolEx原创 2020-07-14 11:54:02 · 104 阅读 · 0 评论 -
什么是进程、线程、多线程? -- 老杜
我觉得这个地方进程和线程的概念说的不怎么好,但是这个例子可以。原创 2020-07-12 22:25:00 · 123 阅读 · 0 评论 -
创建线程的几种方式 -- 老杜
一 继承Thread类1. 调用start方法的流程2. 直接调用run方法的流程原创 2020-07-10 22:53:28 · 103 阅读 · 0 评论 -
初识并发问题 -- 狂神说
案例:买票,有多个买家买票,只要票的个数大于1,就可以一直买public class ThreadTest04 { public static void main(String[] args) { TicketRunnable ticketRunnable=new TicketRunnable(); Thread t1=new Thread(ticketRunnable,"小明"); Thread t2=new Thread(ticketRunn原创 2020-07-10 15:54:15 · 133 阅读 · 0 评论 -
线程的创建方式 --狂神说
一 继承Thread类1.案例一两个线程交替打印public class ThreadTest01 extends Thread{ @Override public void run() { for(int i=0;i<2000;i++){ System.out.println("分支线程执行了----"+i); } } public static void main(String[] arg原创 2020-07-10 15:52:00 · 98 阅读 · 0 评论 -
什么是进程、线程、多线程?-- 狂神说
一 进程和线程二 其他核心概念原创 2020-07-10 09:17:51 · 169 阅读 · 0 评论 -
Java之线程的生命周期
唤醒正在睡眠的线程,使用interrupt方法,interrupt方法就是产生了一个中断,使sleep方法产生异常,那这个异常被catch住然后处理后,就跳出sleep方法了,然后回到就绪状态。(阻塞到其他)public static void yield():让当前线程暂停,放弃之前抢占的时间片,回到就绪状态(运行到就绪)public final void join() throws InterruptedException(运行到阻塞)...原创 2020-04-19 09:28:58 · 84 阅读 · 0 评论 -
Java线程之生产者和消费者模式
一 wait()、notify() 和notifyAll()参考https://www.cnblogs.com/zsh-blogs/p/10429184.html二 生产者和消费者模式1. 生产者消费者需求2. 生产者和消费者实现方法1public class ProducerAndConsumerTest { public static void main(Strin...原创 2020-04-20 13:35:25 · 137 阅读 · 0 评论 -
Java之定时器
实现一个定时器public class TimerTest { public static void main(String[] args) throws ParseException { Timer timer=new Timer(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Da...原创 2020-04-19 22:47:57 · 118 阅读 · 0 评论 -
Java线程之守护线程
什么是守护线程?Java中,线程分为两类:用户线程:包括main线程 守护线程(后台线程):在后台默默守护的线程,比较有代表性的守护线程就是垃圾回收线程守护线程的特点一般情况下,守护线程是一个死循环 如果所有的用户线程都结束了,那么守护线程也会自动结束守护线程用在什么地方呢?案例:每到0:00时,系统自动备份数据,这个需要使用定时器,并且我们可以将定时器设置为守护线程,一直...原创 2020-04-19 22:24:00 · 104 阅读 · 0 评论 -
多线程环境下的死锁
死锁就是,两个或多个线程,彼此手中都拿到对方向要的锁,处于一种僵持的状态死锁的案例public class DeadLock { public static void main(String[] args) { Object obj1=new Object(); Object obj2=new Object(); MyThread1 mt1=new MyThread1(...原创 2020-04-19 21:50:42 · 77 阅读 · 0 评论 -
Java之多线程并发环境下的数据安全问题
一 什么是多线程环境下的数据安全问题多线程环境下的数据安全问题需要满足三个条件多线程并发 多个线程有共享数据 被共享的数据有修改的行为二 多线程环境下数据安全的重要性以后在实际的开发中,我们的项目都是运行在服务器上,而服务器已经将线程的定义、线程对象的创建、线程的启动等都已经实现完了。这些代码我们不需要编写。 最重要的是我们需要知道,我们编写的程序要放到一个多线程的环境下运行,...原创 2020-04-19 21:41:42 · 1051 阅读 · 0 评论 -
Java之线程调度
一 常见的线程调度模型抢占式线程调度模型:哪个线程的优先级高,抢到CPU时间片的概率就高一些。Java采用的就是抢占式调度模型。 均分式线程调度模型:平均分配CPU时间片,每个线程占有的时间片长度一样。二 Java中和线程调度有关的方法1.setPriority(intnewPriority)和getPriority()public finalvoidsetPriority...原创 2020-04-19 16:29:43 · 128 阅读 · 0 评论 -
Java线程之常用函数
一 设置线程名字setName()和获取线程名字getName()【方式一】不手动设置线程名字,获取线程的默认名字,使用getName()方法,线程的默认名字格式为:Thread-0、Thread-1、Thread-2.......public class ThreadTest05 { public static void main(String[] args) { Thread ...原创 2020-04-19 12:51:10 · 548 阅读 · 0 评论