文档章节

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基础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
通往大神之路,百度Java面试题前200页。

基本概念 操作系统中 heap 和 stack 的区别 什么是基于注解的切面实现 什么是 对象/关系 映射集成模块 什么是 Java 的反射机制 什么是 ACID BS与CS的联系与区别 Cookie 和 Session的区别 fa...

java技术栈
2017/11/17
0
0
14、Java并发性和多线程-Java ThreadLocal

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

easonjim
2017/06/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python标准输入输出

input() 读取键盘输入 input() 函数从标准输入读入一行文本,默认的标准输入是键盘。 input 可以接收一个Python表达式作为输入,并将运算结果返回。 print()和format()输出 format()输出...

colinux
26分钟前
0
0
Python 核心编程 (全)

浅拷贝和深拷贝 1.浅拷贝:是对于一个对象的顶层拷贝,通俗的理解是:拷贝了引用,并没有拷贝内容。相当于把变量里面指向的一个地址给了另一个变量就是浅拷贝,而没有创建一个新的对象,如a...

代码打碟手
38分钟前
0
0
PHP 对象比数组省内存?错!数组比对象省内存?错!

刚刚一个群里有人引出了 PHP 数组和对象占用内存谁多谁少的问题。我想起之前我好像也测试过这个问题,和群里人说的对象比数组节省内存的结论相反,我得出的是数组比对象节省内存。 但今天,我...

宇润
54分钟前
1
0
memcached命令行及其用法

21.5 memcached命令行 创建数据 yum install -y telnet 利用telnet命令连接memcached数据库 telnet 127.0.0.1 11211 #写入数据 set key2 0 30 212STORED 这个是错误的示范,因为0 30 已经...

lyy549745
54分钟前
0
0
Maven私服

Maven私服 一、简介 当多人项目开发的时候,尤其聚合项目开发,项目和项目之间需要有依赖关系,通过maven私服,可以保存互相依赖的jar包,这样的话就可把多个项目整合到一起。 如下图: Inst...

星汉
57分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部