Java 多线程使用要点分析
作者:lqh 发布时间:2023-12-18 22:41:36
多线程细节问题
sleep方法和wait方法的异同点?
相同点:
让线程处于冻结状态.
不同点:
sleep必须指定时间
wait可以指定时间也可以不指定时间
sleep时间到,线程处于临时阻塞状态或者运行态
wait如果没有时间,必须通过notify或者notifyAll唤醒
sleep不一定非要定义在同步中
wait必须定义在同步中
都定义在同步中时
sleep放执行权,不放锁
wait放执行权,放锁
syschronized(obj)
{
wait();// 0 1 2
code...
}
syschronized(obj)
{
notifyAll();// 3
code...
}
线程如何停止
stop方法
stop方法已经过时,看描述发现,有其他解决方案.
线程结束:就是让线程任务代码执行完,run方法结束
run方法如何结束?
通过定义循环
注意:万一线程在任务中处于冻结状态他还能判断标记吗?
所谓的中断状态并不是停止线程.
interrupt中断状态使
如果目标线程等待很长时间,则应使用 interrupt 方法来中断该等待
所谓的中断并不是停止线程。
interrupt的功能是 将线程的冻结状态清除,让线程恢复到的运行状态(让线程重新具备cpu的执行资格)。
因为时强制性的所以会有异常InterruptedException发生,可以在catch中捕获异常,
在异常处理中,改变标记让循环结束,让run方法结束。
守护线程
守护线程:也可以理解为后台线程,之前创建的都是前台线程。
只要线程调用了setDaemon(true);就可以把线程标记为守护线程。
前台后台线程运行时都是一样的,获取CPU的执行权执行。
只有结束的时候有些不同。
前台线程要通过run方法结束,线程结束。
后台线程也可以通过run方法结束,线程结束,还有另一种情况,
当进程中所有的前台线程都结束了,这时无论后台线程处于什么样的状态,都会结束,从而进程会结束。
进程结束依赖的都是前台线程。
线程优先级
线程的优先级:用数字标识的,1-10
其中默认的初始优先级时5 最明显的三个优先级 1,5,10。
setPriority(Thread.MAX_PRIORITY);
线程组
线程组:ThreadGroup:可以通过Thread的构造函数明确新线程对象所属的线程组。
线程组的好处,可以对多个同组线程,进行统一的操作。
默认都属于main线程组。
匿名内部类
Runnable rn = new Runnable() {
public void run() {
}
};
//上述代码等价于
class Anomymous implements Runnable {
public void run() {
}
}
Runnable rn = new Anomymous();
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


猜你喜欢
- 【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1
- 项目最终的文件结构1 添加maven依赖 <dependency> <groupI
- 一、概念 工厂方法模式是类的创建模式,又叫虚
- 目录1 创建 xml 动画文件2 加载使用3 聊一聊 AnimationDrawable3.1 使用 ViewTreeObserver3.2
- 需求当游戏显示3d场景及其UI的时候。玩家左右晃动手机的时候,UI界面会随之左右偏移。上下晃动的时候,3D场景会随之上下偏移。手机停止晃动的
- 具体可见http://developer.android.com/tools/debugging/ddms.html。 DDMS为IDE和e
- @RequestParam@RequestParam:接收来自RequestHeader中,即请求头。通常用于GET请求,例如:http:/
- 抽象工厂模式概述抽象工厂模式(Abastract Factory Pattern)属于创建型模式,它提供了一种创建对象的最佳方式。它提供一个
- 1、WinForm中datagridview增加行号在界面上拖一个控件dataGridView1,在datagridview添加行事件中添加
- 本文实例讲述了Android编程中HTTP服务用法。分享给大家供大家参考,具体如下:在Android中,除了使用java.net包下的API
- 以前传统的比较方式是遍历图片中的每一个像素,然后进行比对。这样的比对在少量图片的比对上虽然效率低一点,但是也没有什么不好。但是在大量图片比对
- 1.为什么需要动态内存分配关于这个问题,我们先看看我们之前是如何开辟内存的。int val = 20;//在栈空间上开辟四个字节char a
- 目录1、synchronized锁的底层实现原理2、基于synchronized实现单例模式3、利用类加载实现单例模式(饿汉模式)1、syn
- Failed to fectch URl
- 前言本章内容主要研究一下java高级特性-反射、android注解、和 * 的使用,通过了解这些技术,可以为了以后实现组件化或者Api h
- maven使用过程中无法导入依赖的一些总结作为一名java开发的新手,在学习中难免遇见各种问题,在此总结一下。在使用maven过程中总是碰见
- Java生成4位、6位随机数短信验证码生成短信验证码问题,本质是产生某个范围内随机数的问题。比如,要生成6位短信验证码xxxxxx:6位数最
- 前言镜像配置都是常规操作,必要时也可以上代理.自己搭的nexus本质也是一种镜像,可以代理maven中央仓库.各个仓库的测速,可以使用这个脚
- 在Word中可将文件通过OLE对象嵌入的方式插入到文档,包括Word、excel、PDF、PPT、图片、宏文件、文件包等在内的多种文件类型。
- BASE64 编码是一种常用的字符编码,在很多地方都会用到。但base64不是安全领域下的加密解密算法。能起到安全作用的效果很差,而且很容易