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());
}
} }

  

最新文章

  1. Neutron 功能概述 - 每天5分钟玩转 OpenStack(65)
  2. Objective-C 关键字:retain, assgin, copy, readonly,atomic,nonatomic
  3. WPF自动隐藏的消息框(鼠标放上去将一直显示,移开动画继续),提供normal和error两种边框。
  4. Sql [hierarchyid]类型如何动态插入层级数据
  5. windows装liunx双系统
  6. MySql避免全表扫描
  7. with语句
  8. 用css控制一个DIV画图标。
  9. 复习知识点:XML解析数据,JOSN解析数据,GET请求数据,POST请求数据
  10. 组件接口(API)设计指南[4]-通知(Notifications)
  11. ajax跨域问题及解决
  12. tomcat部署项目时省略项目名
  13. VxWorks嵌入式系统几种常用的延时方法
  14. uoj123 【NOI2013】小Q的修炼
  15. 完整的http请求分析
  16. 随select动,将value值显示在后面的input里
  17. HTML 通过js实现div的拖动效果
  18. PHP利用Session实现上传进度
  19. SharePoint 2013 APP 开发示例 系列
  20. python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)

热门文章

  1. Maven常用设置
  2. Druid未授权访问实战利用
  3. Centos配置yum本地源最简单的办法
  4. 数据库查询语句遇到:Unknown column &#39;XXXX&#39; in &#39;where clause&#39;解决方法
  5. Abp 审计模块源码解读
  6. Matplotlib直方图绘制技巧
  7. 天翼网关免密改桥接&amp;恢复出厂(含修改超密工具)
  8. Android中ActionBar和ToolBar添加返回箭头
  9. having筛选结果集
  10. iOS 启动画面 App图标尺寸 项目上架必须Icon设置