第二十章——多线程

 一.线程简介

线程的特点

1.进程是资源分配的最小单位,线程是最小的执行单位

2.一个进程可以有多个线程

3.线程共享进程资源

 二.创建线程

1.继承Thread类

1.Thread类是java.lang包中的一个类,从这个类实例化的对象代表线程,程序员启动一个新线程需要建立Thread实例。

public class ThreadTest extends Thread{}

 2.run()方法

public void run(){
}

20.1线程for循环

2.实现Runnable接口

1.语法

public class Thread extends Object implements Runnable

20.2窗口图标动起来

三.线程的生命周期

四.操作线程的方法

1.线程的休眠

        1.时间以毫秒为单位

try{
Thread.sleep(2000);
}catch(InterruptedException e){
e.printStackTrace();
}

20.3每0.1秒绘制一条随机的颜色的线条

2.线程的加入

1.当某个线程使用join()方法加入另外一个线程时,另一个线程会等待该线程执行完毕后在继续执行。

20.4让进度条A等待进度条B

3.线程的中断

1.现在提倡在run()方法中使用无限循环的形式,然后使用一个布尔型标记控制循环的停止。

20.5单击按钮停止进度条滚动

4.线程的礼让

1.yieid()方法使具有同样优先级的线程有进入可执行状态的机会,在当前线程放弃执行权时会再度回到就绪状态。

五.线程的优先级

1.每个线程都具有各自的优先级,线程的优先级可以表明在程序中该线程的重要性,如果有会让你多线程处于就绪状态,系统会根据优先级来决定首先使用哪一个线程进入运行状态。

20.6观察不同优先级的线程执行完毕顺序

六.线程同步

1.在单线程程序中,每一次只能做一件事情,后面的事情需要等待前面的事情完成后才可以进行,但是如果使用多线程线程,就会发生两个线程抢占资源问题。

1.线程安全

2.线程同步机制

        1.同步块

synchronized(0bject){
}

        2.同步方法

synchronized void f(){}

20.7开发线程安全的火车售票系统

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/228753.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免交互语法expect

目录 前瞻 相关命令 范例一:免密登录另外一台主机并创建用户 范例二:免密登录另外三台主机并创建用户 前瞻 expect是建立在tcl(tool command language)语言基础上的一个工具,常被用于进行自动化控制和测试&#xf…

数据结构——链式二叉树的实现(详解)

呀哈喽。我是结衣。 不知道大家的递归学到怎么样呢?如果大家的递归功底不是很好,那么我相信在学完这篇文章后大家一定会对递归有一个更深层次的了解的。 构造链式二叉树 在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能…

常见气体爆炸下限

国标中关于常见气体爆炸下限说明,特此记录 特此记录 anlog 2023年11月29日

java编程:数组代表着苹果期货在 9 天内的价格变化,其中第 n 个元素是苹果在第 n 天的 价格,你可以进行最多三次交易,设计算法,9 天内赚到最多的钱

1 题目 编程题:下面的数组代表着苹果期货在 9 天内的价格变化,其中第 n 个元素是苹果在第 n 天的 价格,你可以进行最多三次交易,设计一个算法,9 天内如何赚到最多的钱?价格数组: [8, 9, 2, 5, …

面试必须要知道的MySQL知识--索引

10 索引 10.1 数据页存储结构 10.1.1 数据页的各个部分 在讲索引之前,让我们看看一个单独的数据页是什么样子的 去除掉一些我们不太需要那么关注的部分后,简化如下: 也就是说平时我们在一个表里插入的一行一行的数据会存储在数据页里&#…

Blender学习笔记:小车狂奔动画

文章目录 路旁小树汽车尾气移动 教程地址:八个案例教程带你从0到1入门blender【已完结】 小车建模 路旁小树 1 添加摄像机,在小车下面拉一个平面,覆盖到摄像机的观察视窗。复制一层平面,收窄变成小车两侧的路面,编辑…

VAE模型及pytorch实现

VAE模型及pytorch实现 VAE模型推导部分最小化KL散度推导代码部分损失函数Encoder部分Decoder部分VAE整体架构 VAE问题参考资料 VAE(变分自编码器)是一种生成模型,结合了自编码器和概率图模型的思想。它通过学习数据的潜在分布,可以…

Python面试破解:return和yield的细腻差别

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python面试破解:return和yield的细腻差别,全文3000字,阅读大约10钟。 在Python的函数编程中,return和yield是两个常用的关键词…

居家适老化设计第三十四条---卫生间之照明

居家适老化卫生间照明设计需要考虑以下几个方面:1. 光源选择:选择适合老年人眼睛的柔和光源,避免刺眼和眩光的发生。可以选择LED灯具,因为它们具有节能、寿命长和可调光的特点。2. 光线布置:在不同区域设置不同的光线&…

Redis深入理解-主从架构下内核数据结构、主从同步以及主节点选举

Redis 主从挂载后的内核数据结构分析 主节点中,会通过 clusteNode 中的 slaves 来记录该主节点包含了哪些从节点,这个 slaves 是一个指向 *clusterNode[] 数组的数据结构从节点中,会通过 clusterNode 中的 slaveof 来记录该从节点属于哪个主…

vue3中的Fragment、Teleport、Suspense新组件

Fragment组件 在Vue2中: 组件必须有一个根标签 在Vue3中: 组件可以没有根标签, 内部会将多个标签包含在一个Fragment虚拟元素中 好处: 减少标签层级, 减小内存占用 <template><div style"font-size: 14px;"><p> 组件可以没有根标签</p&g…

【JUC】十四、synchronized进阶

文章目录 1、synchronized2、synchronized与monitor3、管程Monitor4、Q&#xff1a;为什么每个Java对象都可以成为一个锁&#xff1f;5、小结 1、synchronized 写个demo&#xff0c;具体演示下对象锁与类锁&#xff0c;以及synchronized同步下的几种情况练习分析。demo里有资源…