java多线程—java线程的创建和线程的生命周期

java线程的创建和线程的生命周期

大家好,又见面了,我是全栈君。

<span style="font-size:14px;">package com.dufy.thread;
/**
 *1 线程学习
 * @author aflyun 
 * 
 */
public class TestCreateThread {

	public static void main(String[] args) {
		
		testThread tt = new testThread();
		testRunable tr = new testRunable();
		tt.start();
		new Thread(tr).start();
		System.out.println("OK");
	}
}
/**
 * 1:创建线程
 * 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。
 * 因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。
 */
/**
 * 1):继承 Thread 类
 * @author aflyun
 *
 */
class testThread extends Thread{
	@Override
	public void run() {
		for (int i = 0; i < 100; i++) {
			System.out.print("*");
		}
	}
}
/**
 * 
 * 2):实现 Runnable 接口
 * @author aflyun
 *
 */
class testRunable implements Runnable{
	@Override
	public void run() {
		for (int i = 0; i < 100; i++) {
			System.out.print("+");
		}
	}
	
/**
 * 2.线程的生命周期
 * 	1)线程的四种状态: 开始(等待) 、 运行 、 挂起 和 停止 ,这四种状态都可以通过Thread类中的方法进行控制
 * 	2)开始线程
 * 		void start():
 * 		void run();
 * 	3)线程挂起和唤醒
 * 		void resume();//不建议使用
 * 		void suspend();//不建议使用
 * 		void sleep(long millis);
 * 		void sleep(long millis,int nanos);
 * 	4)线程终止
 * 		void stop();//不建议使用
 * 		void interrupt();
 * 	5)得到线程状态
 * 		void isAlive();
 * 		void inInterrupted();
 * 		void interrupted();
 * 	6)join 方法
 * 		void join() throws interruptedException;
 * 
 * 	7)线程在创建后不会立马就执行run中的代码,而是处于等待状态。可以通过Thread类的方法设置线程的各种属性
 * 	如: 线程优先级 (setPriority) 线程名(setName) 线程类型 (setDaemon) 等
 * 调用start方法后,线程开始执行run方法中代码,线程处于运行状态。
 * 	可以调用isAlive 判断线程是否处于运行状态  , 运行 返回 true ,否则 返回 false(可能线程处于等待状态,也可能处于停止状态) 
 * 8)执行run后,就会一直运行直到这个线程执行完成后退出。
 * 		但是中间可以使用方法让这个线程暂时停止执行
 * 	①:suspend() 使线程挂起  ,然后用 resume() 唤醒!  //不建议使用
 * 	②:sleep(); 线程休眠,在设定的时间结束后线程处于就绪状态(在线程休眠结束后,线程不一定会马上执行,只是进入了就绪状态,等待着系统进行调度)
 * 
 * 9)sleep 使用注意
 * 	①. sleep方法有两个重载形式,其中一个重载形式不仅可以设毫秒,而且还可以设纳秒(1,000,000纳秒等于1毫秒)。
 * 		但大多数操作系统平台上的Java虚拟机都无法精确到纳秒,因此,如果对sleep设置了纳秒,Java虚拟机将取最接近这个值的毫秒。
 * 	②. 在使用sleep方法时必须使用throws或try{…}catch{…}。因为run方法无法使用throws,所以只能使用try{…}catch{…}。
 * 		当在线程休眠的过程中,使用interrupt方法中断线程时sleep会抛出一个InterruptedException异常。sleep方法的定义如下:
 * 
 * 10)三种方法可以使终止线程
 *	①.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。
 *	②.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。
 * 	③.  使用interrupt方法中断线程。
 * 
 */
	
}</span>


附:进程与线程的一个简单解释

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121262.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月24日 下午6:00
下一篇 2022年2月24日 下午6:00


相关推荐

  • numba 让python速度提升百倍

    numba 让python速度提升百倍本文仅供学习交流使用 如侵立删 联系方式及 demo 下载见文末 python 由于它动态解释性语言的特性 跑起代码来相比 java c 要慢很多 尤其在做科学计算的时候 十亿百亿级别的运算 让 python 的这种劣势更加凸显 办法永远比困难多 numba 就是解决 python 慢的一大利器 可以让 python 的运行速度提升上百倍 什么是 numba numba 是一款可以将 python 函数编译为机器代码的 JIT 编译器 经过 numba 编译的 python 代码 仅限数组运算 其运行速度可以接近 C 或 FORTRAN 语言

    2026年3月19日
    2
  • python可视化图表(python 显示图片)

    目录一、fig,ax=plt.subplots()的作用?二、参数的含义?三、怎么在一个图上排列多个子图?四、怎么把多个子图一起合并到一个图上?《PythonforDataAnalysis》2ndEdition一、fig,ax=plt.subplots()的作用?它是用来创建总画布/figure“窗口”的,有figure就可以在上边(或其中一个子…

    2022年4月17日
    243
  • Burp_suite安装及使用教程(专业版)

    Burp_suite安装及使用教程(专业版)1、工具下载地址:https://down.52pojie.cn/Tools/Network_Analyzer/Burp_Suite_Pro_v1.7.37_Loader_Keygen.zip工具运

    2022年6月30日
    30
  • Gerrit 使用手册

    Gerrit 使用手册Gerrit 代码审核工具 丰富的权限管理 具有广泛通用性 这里简单搭建了一套 gerrit 服务器 用于学习 gerrit 工具 可以更好的为开源社区贡献代码 1 已经创建好的帐号有 admindev1dev 管理员账户 代码合并 dev1dev2 开发人员提交代码 verify1verif 用于核查提交的代码能否编译成功 通常去其他集成工具配合 review1revie 审核人

    2026年3月17日
    2
  • 单模光纤和多模光纤区别

    单模光纤和多模光纤区别转载自 https www gigalight com cn bbs faq 1410 html 单模和多模光纤的区别是什么 知乎 zhihu com 随着网络高带宽 高速率要求不断的增长 光纤作为网络传输介质被广泛应用于网络布线中 常见的光纤类型有多模光纤 MMF 和单模光纤 SMF 两种 那么什么是多模光纤 多模光纤与单模光纤的区别主要体现在哪些方面 相信很多人对此都感到茫然不解 下面将为您详细介绍多模光纤以及多模光纤与单模光纤的区别 什么是多模光纤多模光纤 简称 MMF 是一

    2026年3月26日
    2
  • Pycharm启动后加载anaconda一直updating indices造成Pycharm闪退甚至电脑崩溃

    Pycharm启动后加载anaconda一直updating indices造成Pycharm闪退甚至电脑崩溃可能跟 anaconda 文件夹有一定关系网上找找解决方案 似乎很多人有同样的困扰 知乎 pycharm 启动后总是不停的 updatingindi indexing stackoverflo PyCharm4 0 5hangson scanningfile backgroundta Constantly updatingin

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号