博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程的创建
阅读量:6511 次
发布时间:2019-06-24

本文共 5381 字,大约阅读时间需要 17 分钟。

创建一个Java线程常见的有两种方式:

1.继承Thread类

两种表示方法:
(1).外部类

import java.util.Date;public class Test1 {
public static void main(String[] args) { //启动新线程 来完成输出时间的操作 Mytime mt=new Mytime(); //启动新线程 Thread的start() mt.start(); for (int i = 0; i < 100; i++) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("主线程::"+i); } }}//外部类的解决方案class Mytime extends Thread{
@Override public void run() { // 放入线程要执行的代码 这是一个非常耗时的操作 boolean flag=true; while(flag){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Date d=new Date(); System.out.println(d); } }}

(2).匿名内部类

import java.util.Date;public class Test2 {
/** * @param args */ public static void main(String[] args) { //匿名内部类的解决方案 Thread t=new Thread(){ @Override public void run() { boolean flag=true; while(flag){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Date d=new Date(); System.out.println(d); } } }; t.start(); for (int i = 0; i < 100; i++) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("主线程::"+i); } }}------------------------------------------------------import java.util.Date;public class Test3 {
/** * @param args */ public static void main(String[] args) { //匿名内部类 方案 因为这时 子类名是没有的 直接对Thread的run方法进行了实现 new Thread(){ @Override public void run() { boolean flag=true; while(flag){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Date d=new Date(); System.out.println(d); } } }.start(); for (int i = 0; i < 100; i++) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("主线程::"+i); } }}

2.实现Runnable接口

两种表示方法
(1).外部类

import java.util.Date;public class Test4 {
/** * @param args */ public static void main(String[] args) { Mytime2 mt=new Mytime2(); // 创建线程用Thread类 并指定这个线程要执行的任务是mt Thread t=new Thread(mt); t.start(); for (int i = 0; i < 100; i++) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("主线程::"+i); } }}//外部类 这表示一个线程可以执行的任务 class Mytime2 implements Runnable{ @Override public void run() { boolean flag=true; while(flag){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Date d=new Date(); System.out.println(d); } } }

(2).匿名内部类

import java.util.Date;public class Test5 {
/** * @param args */ public static void main(String[] args) { // 创建一个任务对象 匿名内部类 有对象的引用 Runnable r=new Runnable(){ @Override public void run() { boolean flag=true; while(flag){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Date d=new Date(); System.out.println(d); } } }; Thread t=new Thread(r); t.start(); for (int i = 0; i < 100; i++) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("主线程::"+i); } }}----------------------------------------------------------------------------import java.util.Date;public class Test6 {
/** * @param args */ public static void main(String[] args) { // 创建一个任务对象 匿名内部类 new Thread(new Runnable(){ @Override public void run() { boolean flag=true; while(flag){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Date d=new Date(); System.out.println(d); } } }).start(); for (int i = 0; i < 100; i++) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("主线程::"+i); } }}

转载地址:http://rgdfo.baihongyu.com/

你可能感兴趣的文章
1.4linux单用户模式下修改root密码和救援模式修改root密码
查看>>
微服务架构优缺点
查看>>
解读userenv的日志
查看>>
跨进程通信之Messenger
查看>>
ext3与ext4区别
查看>>
DHCP Snooping + Dynamic ARP Inspection(DAI) 配置
查看>>
使用应答文件安装域控制器
查看>>
UNIX/Linux 系统管理技术手册阅读(三)
查看>>
btrfs的使用(案例讲解)
查看>>
分布式事务-二阶段提交与三阶段提交
查看>>
安装配置samba服务器和客户端
查看>>
filebeat 配置文件详解
查看>>
Swift与OC混编
查看>>
CentOS 5 (64位)下lnmp平台搭建
查看>>
redhat 6.5 配置WAS控制台中文
查看>>
mysql实现vsftp虚拟用户访问
查看>>
记录一次处理https监听不正确的过程
查看>>
Zabbix使用SMTP发送邮件报警及定制邮件报警内容
查看>>
SCOM 2012 SP1服务器上安装和配置Veeam MP for VMware
查看>>
UDP中转服务器
查看>>