文档章节

java 创建线程的几种方式

 不怕辣
发布于 2016/05/16 21:27
字数 284
阅读 6
收藏 0

1. 继承java.lang.Thread类

    通过调用start方法,开始执行线程。线程的入口是run()。参考如下代码:

public class ExtendThread extends Thread {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ExtendThread et1 = new ExtendThread();
		et1.start();
		ExtendThread et2 = new ExtendThread();
		et2.start();
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub		
		System.out.println(this.getId());
		super.run();
	}

}

2. 实现java.lang.Runnable接口

      通过new Thread(new 实现Runnable接口的类).start方法,开始执行线程。线程的入口是run()。参考如下代码:

public class RunableThread implements Runnable {

	static int runId = 0;
	
	public RunableThread(){
		runId++;
	}
	
	@Override
	public void run() {
		// TODO Auto-generated method stub
		int i = 0;
		while(i<10){
			System.out.println(runId);
			i++;
		}
	}

	public static void main(String[] args) {
		Runnable r1 = new RunableThread();
		new Thread(r1).start();
		System.out.println("main Thread");		
	}
}

说明:

    对于方法一,new出来的继承Thread类的对象,只能调用一次start()方法。不然会抛IllegalThreadStateException异常 。对于方法二,通过,new Thread多次,可以对同一对象开启多个线程。便于线程间共享资源。

3.  使用线程池

     (待续,线程间同步,线程锁,常用函数)

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 8
码字总数 1253
作品 0
海淀
高级程序员
阿里的面试官都喜欢问哪些技术问题?

金九银十是招聘的旺季,小编在这里也给大家整理了一套阿里面试官最喜欢问的问题或者出场率较高的面试题,助校招或者社招路上的你一臂之力! 首先我们需要明白一个事实,招聘的一个很关键的因...

Java填坑之路
08/26
0
0
java基础thread——java5之后的多线程(浅尝辄止)

承上启下 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象L...

潇潇漓燃
06/03
0
0
阿里高级Java面试题(首发,70道,带详细答案)

整理的70道阿里的Java面试题,都来挑战一下,看看自己有多厉害。下面题目都带超详细的解答,详情见底部。 1、java事件机制包括哪三个部分?分别介绍。 2、为什么要使用线程池? 3、线程池有什...

java技术栈
2017/11/11
0
0
Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释

原文:https://blog.csdn.net/xionghan01/article/details/52840358 一、线程5种状态 新建状态(New) 新创建了一个线程对象。 就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的...

Tenderrain
06/22
0
0
14、Java并发性和多线程-Java ThreadLocal

以下内容转自http://ifeve.com/java-theadlocal/: Java中的ThreadLocal类可以让你创建的变量只被同一个线程进行读和写操作。因此,尽管有两个线程同时执行一段相同的代码,而且这段代码又有...

easonjim
2017/06/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
2
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
14
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0
Redis性能问题排查解决手册

一、性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。 nfo命令输出的数据可...

IT--小哥
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部