
Java多线程文档+简单的实例
发布日期:2021-05-06 22:12:48
浏览次数:27
分类:精选文章
本文共 3875 字,大约阅读时间需要 12 分钟。
(菜鸟教程)
下表列出了Thread类的一些重要方法:
序号 | 方法描述 |
---|---|
1 | public void start() 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 |
2 | public void run() 如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。 |
3 | public final void setName(String name) 改变线程名称,使之与参数 name 相同。 |
4 | public final void setPriority(int priority) 更改线程的优先级。 |
5 | public final void setDaemon(boolean on) 将该线程标记为守护线程或用户线程。 |
6 | public final void join(long millisec) 等待该线程终止的时间最长为 millis 毫秒。 |
7 | public void interrupt() 中断线程。 |
8 | public final boolean isAlive() 测试线程是否处于活动状态。 |
测试线程是否处于活动状态。 上述方法是被Thread对象调用的。下面的方法是Thread类的静态方法。
序号 | 方法描述 |
---|---|
1 | public static void yield() 暂停当前正在执行的线程对象,并执行其他线程。 |
2 | public static void sleep(long millisec) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。 |
3 | public static boolean holdsLock(Object x) 当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true。 |
4 | public static Thread currentThread() 返回对当前正在执行的线程对象的引用。 |
5 | public static void dumpStack() 将当前线程的堆栈跟踪打印至标准错误流。 |
一、多线程-继承
package com.etc._01CreateThreadDemo;class BoilWater extends Thread{//烧水类 @Override public void run() { // TODO Auto-generated method stub System.out.println("正在烧水...."); try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("烧水结束...."); }}class WashCup extends Thread{//洗杯子类 @Override public void run() { // TODO Auto-generated method stub for(int i = 0;i<5;i++){ System.out.println("洗杯子第"+(i+1)+"个"); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}public class ExtendsDemo01 { //主线程 public static void main(String[] args) { BoilWater bw = new BoilWater(); bw.start(); WashCup wc = new WashCup(); wc.start(); //一定要调用start方法 }}
二、接口实现
package 线程;class toShow implements Runnable { @Override public void run() { // TODO Auto-generated method stub System.out.println("开始"); try { Thread.sleep(8000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("结束"); } }class toWord implements Runnable { @Override public void run() { // TODO Auto-generated method stub System.out.println("一秒"); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("六秒"); try { Thread.sleep(6000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }public class Jiekou { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub toShow to1 = new toShow(); Thread name1 = new Thread(to1); name1.start(); toWord to2 = new toWord(); Thread name2 = new Thread(to2); name2.start(); }}
三、多线程(匿名内部类)
package com.etc._01CreateThreadDemo;/** * 匿名内部类实现多线程 * * 一般是这个类只使用一次 * @author Administrator * */public class InnerClassThreadDemo { public static void main(String[] args) throws InterruptedException { for(int i = 0;i<500;i++){ System.out.println("打游戏"+i); Thread.sleep(500); if(i == 2){ //创建新的线程 启动线程// new Thread(new Runnable() {// // @Override// public void run() {// // TODO Auto-generated method stub// for(int j = 0;j<500;j++){// System.out.println("听音乐"+j);// try {// Thread.sleep(500);// } catch (InterruptedException e) {// // TODO Auto-generated catch block// e.printStackTrace();// }// }// // }// }).start(); new Thread(){ @Override public void run() { // TODO Auto-generated method stub //super.run(); for(int j = 0;j<500;j++){ System.out.println("听音乐"+j); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }.start(); } } }}
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年03月22日 23时47分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Typescript 学习笔记六:接口
2019-03-05
02、MySQL—数据库基本操作
2019-03-05
OpenJDK1.8.0 源码解析————HashMap的实现(一)
2019-03-05
MySQL-时区导致的时间前后端不一致
2019-03-05
2021-04-05阅读小笔记:局部性原理
2019-03-05
go语言简单介绍,增强了解
2019-03-05
架构师入门:搭建基本的Eureka架构(从项目里抽取)
2019-03-05
MongoDB 快速扫盲贴
2019-03-05
one + two = 3
2019-03-05
sctf_2019_easy_heap
2019-03-06
PyQt5之音乐播放器
2019-03-06
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
2019-03-06
SQL注入
2019-03-06
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
2019-03-06
Problem 330A - Cakeminator (思维)
2019-03-06
LeetCode75 颜色分类 (三路快排C++实现与应用)
2019-03-06
C语言+easyX图形库的推箱子实现
2019-03-06
调试vs2019代码的流程
2019-03-06
脱壳与加壳-加壳-6-代码实现加密导入表
2019-03-06
Typora配置PicGo时,提示Failed to fetch
2019-03-06