【Java】创建线程对象两种方式
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
public class RunnableDemo implements Runnable {
protected int countDown = 10;
private static int taskCount = 0;
private final int id = taskCount++;
public RunnableDemo() {
}
public RunnableDemo(int countDown) {
this.countDown = countDown;
}
public String status() {
return "#" + id + "(" + (countDown > 0 ? countDown : "LiftOff!") + ").";
}
@Override
public void run() {
while (countDown-- > 0) {
System.out.print(status());
Thread.yield();// 将CPU从一个线程转移给另一个线程
}
}
public static void main(String[] args) {
System.out.println("这个任务的run()不是单独的线程驱动,是在main()中直接调用");
RunnableDemo launch = new RunnableDemo();
launch.run();
System.out.println();
System.out.println("************************************");
System.out.println("在新线程中启动任务");
Thread thread = new Thread(new RunnableDemo());
thread.start();
System.out.println("Waiting for LiftOff");
System.out.println("************************************");
System.out.println("添加多个线程去驱动更多的任务");
for (int i = 0; i < 5; i++) {
new Thread(new RunnableDemo()).start();
}
System.out.println("Waiting for LiftOff");
System.out.println("************************************");
System.out.println("使用executor");
ExecutorService exec = Executors.newCachedThreadPool();
exec=Executors.newFixedThreadPool(5);
for (int i = 0; i < 5; i++) {
exec.execute(new RunnableDemo());
}
exec.shutdown();
Thread t=new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
}
}
【Java】创建线程对象两种方式的更多相关文章
- java创建线程的两种方式及源码解析
创建线程的方式有很多种,下面我们就最基本的两种方式进行说明.主要先介绍使用方式,再从源码角度进行解析. 继承Thread类的方式 实现Runnable接口的方式 这两种方式是最基本的创建线程的方式,其 ...
- Java创建线程的两种方式
方式 继承Thread类 实现Runnable方法 实例 #继承Thread类 public class ThreadTest2 extends Thread { private int thread ...
- 当阿里面试官问我:Java创建线程有几种方式?我就知道问题没那么简单
这是最新的大厂面试系列,还原真实场景,提炼出知识点分享给大家. 点赞再看,养成习惯~ 微信搜索[武哥聊编程],关注这个 Java 菜鸟. 昨天有个小伙伴去阿里面试实习生岗位,面试官问他了一个老生常谈的 ...
- 【java并发】传统线程技术中创建线程的两种方式
传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...
- Java并发基础01. 传统线程技术中创建线程的两种方式
传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...
- 创建线程的两种方式比较Thread VS Runnable
1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 public class MyThread extends Thread{ @Override public vo ...
- Java新建线程的两种方式
Java新建线程有两种方式,一种是通过继承Thread类,一种是实现Runnable接口,下面是新建线程的两种方式. 我们假设有个竞赛,有一个选手A做俯卧撑,一个选手B做仰卧起坐.分别为两个线程: p ...
- Java创建线程的四种方式
Java创建线程的四种方式 1.继承Thread类创建线程 定义Thread类的子类,并重写该类的run方法,run()方法的内容就是该线程执行的内容 创建Thread子类的实例,即创建了线程对象. ...
- Java中创建线程的两种方式
创建线程的第一种方式: 创建一个类继承Thread 重写Thread中的run方法 (创建线程是为了执行任务 任务代码必须有存储位置,run方法就是任务代码的存储位置.) 创建子类对象,其实就是在创建 ...
随机推荐
- 自定义网站的icon和收藏夹图标
定制网站收藏夹图标的方法有两种: 第一种方法: 第一步,当然是准备一个能体现您的主页的风格和个性的图标.比较简便的办法除了下载,就是将您的网站的logo做成一个图标. 第二步,将这个图标文件命名为:f ...
- VB.NET服务器端令客户端下载PDF文件
后台JS调用另一个控件,通过SESSION传递sDocumentPath 控件后台代码如下 Response.Clear() '如果不清,则有可能将页面源码作为文件内容的一部分传递给用户 ...
- Golang配置文件解析-oozgconf
代码地址如下:http://www.demodashi.com/demo/14411.html 简介 oozgconf基于Golang开发,用于项目中配置文件的读取以及加载,是一个轻量级的配置文件工具 ...
- Vijos1935不可思议的清晨题解
- 题目来源 https://vijos.org/p/1935 描写叙述 今天,是2015年2月14日,星期六,情人节. 这真是一个不可思议的日子.今天早上.我打开窗户,太阳居然从西側升了起来. 我与 ...
- Android API之android.content.AsyncQueryHandler
android.content.AsyncQueryHandler A helper class to help make handling asynchronous ContentResolver ...
- PHP一些优先级的问题
直接看代码 <?php echo '1'.print(2)+3,"\n"; 不错,就是这么简单,但是很少有人能正确回答 我们执行一下 [root@localhost test ...
- HDUOJ---4503 湫湫系列故事——植树节
湫湫系列故事——植树节 Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- 关于Xcode上的Other linker flags
Targets选项下有Other linker flags的设置,用来填写XCode的链接器参数,如:-ObjC -all_load -force_load等.还记得我们在学习C程序的时候,从C代码到 ...
- Android学习系列(19)--App离线下载
宜未雨而绸缪,毋临渴而掘井.----朱用纯<治家格言> 离线下载,在有网络的情况下下载服务器数据,以便无网络时也能阅读,就是离线阅读. 离线下载的功能点如下: ...
- VS2005自定义ActiveX控件在asp.net中应用方法
原文地址:http://www.cnblogs.com/zhf/archive/2009/03/02/1401299.html 开发环境为VS 2005, .NET framework 2.0 文件— ...