Java多线程编程核心技术---多线程技能
2024-08-31 22:05:25
1、继承Thread
/**
* Copyright (C), 2018-2018,
* FileName: MyThread
* Author: 大象
* Date: 2018-06-08 22:30
*/
package com.daxiang.demo.thread; /**
* 〈〉<br>
*
* @author daxiang
* @create 2018-06-08
* @since 1.0.0
*/
public class MyThread extends Thread{
@Override
public void run() {
super.run();
System.out.println("this is thread");
} public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
System.out.println("线程结束");
}
}
2、实现Runnable接口
由于java规定只能单继承,所以为了满足多线程要求可以继承Runnable接口
/**
* Copyright (C), 2018-2018,
* FileName: MyThreadByRunnable
* Author: 大象
* Date: 2018-06-08 22:33
*/
package com.daxiang.demo.thread; /**
* 〈〉<br>
*
* @author daxiang
* @create 2018-06-08
* @since 1.0.0
*/
public class MyThreadByRunnable implements Runnable{ @Override
public void run() {
System.out.println("线程运行中");
} public static void main(String[] args) {
MyThreadByRunnable myThreadByRunnable = new MyThreadByRunnable();
Thread thread = new Thread(myThreadByRunnable,"线程1");
thread.start();
System.out.println("运行结束");
}
}
3、线程运行的随机性
/**
* Copyright (C), 2018-2018,
* FileName: MyThreadByRandom
* Author: 大象
* Date: 2018-06-09 7:00
*/
package com.daxiang.demo.thread; /**
* 〈〉<br>
*
* @author daxiang
* @create 2018-06-09
* @since 1.0.0
*/
public class MyThreadByRandom extends Thread { @Override
public void run() {
System.out.println("run thread:" + Thread.currentThread().getName());
for (int j = 0; j < 10; j++) {
int time = (int) Math.random() * 1000;
try {
Thread.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("run:" + Thread.currentThread().getName());
} } public static void main(String[] args) {
MyThreadByRandom thread = new MyThreadByRandom();
thread.setName("线程");
thread.start();
for (int i = 0; i < 10; i++) {
int time = (int) Math.random() * 1000;
try {
Thread.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("run:" + Thread.currentThread().getName());
}
} }
最新文章
- Neutron 功能概述 - 每天5分钟玩转 OpenStack(65)
- Objective-C 关键字:retain, assgin, copy, readonly,atomic,nonatomic
- WPF自动隐藏的消息框(鼠标放上去将一直显示,移开动画继续),提供normal和error两种边框。
- Sql [hierarchyid]类型如何动态插入层级数据
- windows装liunx双系统
- MySql避免全表扫描
- with语句
- 用css控制一个DIV画图标。
- 复习知识点:XML解析数据,JOSN解析数据,GET请求数据,POST请求数据
- 组件接口(API)设计指南[4]-通知(Notifications)
- ajax跨域问题及解决
- tomcat部署项目时省略项目名
- VxWorks嵌入式系统几种常用的延时方法
- uoj123 【NOI2013】小Q的修炼
- 完整的http请求分析
- 随select动,将value值显示在后面的input里
- HTML 通过js实现div的拖动效果
- PHP利用Session实现上传进度
- SharePoint 2013 APP 开发示例 系列
- python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)