多线程
百了江
这个作者很懒,什么都没留下…
展开
-
使用wait()、notifyAll()方法编写多线程奇偶数交互输出
文章目录前言一、主方法二、共享数据对象类三、奇数线程四、偶数线程前言本章使用使用wait()、notifyAll()方法编写多线程奇偶数交互输出一、主方法代码如下(示例):public class NumWaitNotifyTest { public static void main(String[] args) { //共享数据Num; Num num = new Num(); //创建线程 Thread t1 =原创 2021-01-21 14:51:45 · 213 阅读 · 3 评论 -
使用wait()、notify()、notifyAll()编写生产者和消费者模式
文章目录前言一、主方法二、生产线程三、消费线程前言本章使用wait()和notifyAll()编写生产者和消费者模式提示:以下是本篇文章正文内容,下面案例可供参考一、主方法代码如下(示例):public class ProducerConsumerTest { public static void main(String[] args) { //创建仓库对象 List list = new ArrayList(); //创建线程对象原创 2021-01-18 22:27:02 · 175 阅读 · 0 评论 -
Java--定时器(TimerTask)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-01-17 21:39:40 · 297 阅读 · 0 评论 -
守护线程
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport原创 2021-01-16 18:05:56 · 103 阅读 · 0 评论 -
线程安全问题
文章目录前言一、线程安全?1.发生线程安全问题的条件2.怎么解决线程安全问题二、异步编程模型三、同步编程模型四、线程安全是为了什么?1.Java中的三大变量2.三大变量的安全前言本章介绍线程安全问题一、线程安全?1.发生线程安全问题的条件多线程并发有共享资源共享资源有修改行为2.怎么解决线程安全问题线程排队执行(不能并发):使用线程同步机制二、异步编程模型线程A和线程B各自执行各自的,A不影响B,B也不影响A互不干扰。异步编程模型就是多线程并发(优点:效率较高)三、同步编程模原创 2021-01-09 19:58:26 · 384 阅读 · 0 评论 -
线程生命周期
文章目录前言一、新建状态二、就绪状态三、运行状态四、阻塞状态五、死亡状态六、线程调度前言线程的生命周期分为五种状态:新建状态、就绪状态、运行状态、阻塞状态、死亡状态提示:以下是本篇文章正文,详细介绍状态之间的转换关系。一、新建状态刚new出来的线程对象。新建状态调用start()方法就进入就绪状态。二、就绪状态就绪状态的线程又叫做可运行状态,表示当前线程具有抢夺CPU时间片的权利(CPU时间片就是执行权)。当一个线程抢夺到CPU时间片之后就开始执行run()方法。run()方法的执行标志着原创 2021-01-09 19:41:06 · 93 阅读 · 0 评论 -
多线程基础知识
什么是进程?什么是线程文章目录前言一、进程是什么?二、线程是什么?三、进程和线程的关系?四、多线程并发是什么?五、多线程的作用?六、思考前言此章讲述什么是进程,什么是线程,多线程的作用和一些需要注意的事项一、进程是什么?进程:一个程序/软件。二、线程是什么?线程:一个进程中的执行场景/执行单元三、进程和线程的关系?进程可以看作是现实生活当中的公司线程可以看作是公司当中的某个员工比如:京东是一个进程,刘强东就是一个线程,奶茶妹妹也是一个线程阿里巴巴是一个进程,马云就是一个线程原创 2020-12-29 09:51:34 · 213 阅读 · 1 评论 -
死锁
死锁示例注意:同步的线程对象很重要,主意好顺序。public class DeadLock { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); Thread t1 = new MyThread01(o1,o2); Thread t2 = new MyThread02(o1,o2);原创 2021-01-16 12:57:19 · 80 阅读 · 0 评论 -
synchronized同步关键字三种写法和开发中如何解决线程安全问题
文章目录前言一、同步代码块二、在实例方法上使用synchronized三、在静态方法上使用synchronized总结:开发中如何解决线程安全问题第一种方案第二种方案第三种方案前言为了保证线程安全,我们可以采用synchronized同步关键字一、同步代码块优点:灵活注意:synchronized关键字后的小括号中填写的一定是线程共享的对象,希望哪些线程进行排队,就填写这些线程的对象。代码如下(示例):synchronized(线程共享对象){ 同步代码块;}二、在实例方法上使用s原创 2021-01-16 11:32:17 · 306 阅读 · 0 评论 -
启动线程的三种方式
文章目录前言一、启动线程的第一种方法:继承类二、启动线程的第二种方式:实现接口三、启动线程的第三种方式:匿名内部类前言启动线程一共有三种方法:继承类,实现接口,匿名内部类。一、启动线程的第一种方法:继承类start()方法的作用是启动一个分支线程,在JVM中开辟一个新的栈空间。只要新的栈空间,myThread.start()瞬间就结束了,线程就启动成功了。启动成功的线程会自动调用run方法,并且run方法在分支线的栈底部。代码如下(示例):public class Thread01 .原创 2021-01-01 07:41:29 · 21160 阅读 · 1 评论 -
有关线程的方法
文章目录前言一、获取线程对象的名字二、修改线程对象的名字三、获取当前线程四、关于线程的sleep方法五、关于run方法重点六、==中断==线程的睡眠(依靠Java的异常处理机制)七、终止线程方法前言此章介绍了线程中的部分方法提示:以下是本篇文章正文内容,下面案例可供参考一、获取线程对象的名字String name = 线程对象.getName();二、修改线程对象的名字线程对象.setName(“newName”);线程未设置名字的时,默认的名字有什么规律?Thread..原创 2021-01-07 11:28:42 · 70 阅读 · 0 评论