IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java 多线程 -> 正文阅读

[Java知识库]Java 多线程

多线程

线程是成程序中的执行线程,Java虚拟机可以允许应用程序执运行多个执行线程,每个线程都可以并行执行不同的任务,每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。

线程的优先级

Java优先级是一个整数,其取值范围是从 1(MIN_PRIORITY-10(MAX_PRIORITY ),默认情况下每个线程都会分配优先级为5(NORM_PRIORITY ),优先级不能保证线程的执行顺序。

线程的创建

  1. 通过继承Thread 类,子类重写Thread 类的run方法,通过start()方法启动线程。
class domeThread extends Thread {
	 String name;
	 public domeThread(String name) {
		
		 super(name);   //线程名字
	}
	 @Override
	public void run() {      //重写run方法
		// TODO Auto-generated method stub
		
	}
}

然后启动线程

 domeThread d=new domeThread("线程1");
 d.start();
  1. 实现 Runnable 接口,该类实现run方法,通过创建Thread 作为一个参数传递并启动。
class domeRunnable implements Runnable{
    String name;
    public domeRunnable(String name) {
		this.name=name;
	}
	@Override
	public void run() {   //实现run方法
		
	}
	
}

参数传递并启动

 new Thread(new domeRunnable("线程2")).start();

构造方法

  1. Thread(); 分配一个新的Thread对象
  2. Thread(Runnable target) ;通过Runnable接口创建一个Thread对象。
  3. Thread(Runnable target, String name);通过一个Runnable接口和线程名字创建Thread对象。
  4. Thread(String name) ;通过一个线程名字创建一个Thread对象。

常用方法

方法名说明
void run()如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
void start()使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
void setName(String name)改变线程名称,使之与参数 name 相同
void setPriority(int newPriority)更改线程的优先级
void setDaemon(boolean on)将该线程标记为守护线程或者用户线程
void join(long millis)等待该线程终止的时间最长为 millis 毫秒。
void join(long millis, int nanos)等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒
void interrupt()中断线程
static boolean interrupted()测试当前线程是否已经中断
boolean isAlive()测试线程是否处于活动状态
boolean isDaemon()测试线程是否为守护线程

静态方法

方法名说明
void sleep(long millis)在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。
static void yield()暂停当前正在执行的线程对象,并执行其他线程。
static Thread currentThread()返回对当前正在执行的线程对象的引用。
static void dumpStack()将当前线程的堆栈跟踪打印至标准错误流。

示例

  1. 实现Runable接口,实现run方法。
class domeRunnable implements Runnable{
    String name;
    public domeRunnable(String name) {
		this.name=name;
	}
	@Override
	public void run() {
		for(int i=0;i<6;i++) {
			try {
				System.out.println(this.name+"---"+i);
				Thread.sleep(500);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
  1. 通过domeRunnable对象创建Thread对象。
public class dome2{
	public static void main(String[] args){
         new Thread(new domeRunnable("线程1")).start();
         new Thread(new domeRunnable("线程2")).start();
   }
}

结果
线程1—0
线程2—0
线程2—1
线程1—1
线程1—2
线程2—2
线程2—3
线程1—3
线程1—4
线程2—4
线程2—5
线程1—5

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:47:38  更:2021-09-01 11:48:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:10:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码