Java - 线程基础
来源:互联网 发布:微信支付html源码 编辑:程序博客网 时间:2024/05/18 01:13
一、创建线程
编写线程运行时执行的代码有两种方式:一种是创建Thread子类的一个实例并重写run方法,第二种是创建类的时候实现Runnable接口。
1、创建Thread的子类
创建Thread子类的一个实例并重写run方法,run方法会在调用start()方法之后被执行。例子如下:
public class MyThread extends Thread {@Overridepublic void run() {System.out.println("extends thread!");}}可以用如下方式创建并运行上述Thread子类:
new MyThread().start();补充:也可以如下创建一个Thread的匿名子类并执行它:
new Thread(){public void run(){System.out.println("anonymous extends thread!");}}.start();2、实现Runnable接口
新建一个实现了java.lang.Runnable接口的类的实例,实例中的方法可以被线程调用。例子如下:
public class MyRunnable implements Runnable {@Overridepublic void run() {System.out.println("implements runnable!");}}要使线程执行run()方法,需要在Thread类的构造函数中传入MyRunnable的实例对象。示例如下:
new Thread(new MyRunnable()).start();补充:也可以一个实现了Runnable接口的匿名类并执行它:
new Thread(new Runnable() {@Overridepublic void run() {System.out.println("anonymous implement runnable!");}}).start();
二、一些问题
1、关于线程的执行
一旦线程启动后start方法就会立即返回,而不会等待到run方法执行完毕才返回。
2、调用run()方法和start()方法的区别:
当创建一个线程并调用线程的run()方法时,如下所示:
new MyThread().run(); //new MyThread().start();
用上面的方式调用的run()方法并非是由刚创建的新线程所执行的,而是被创建新线程的当前线程所执行的。想要让创建的新的线程执行run()方法,必须调用新线程的start方法即被注释的方式。
3、线程的名称
当创建一个线程的时候,可以给线程起一个名字。示例如下:
MyRunnable runnable = new MyRunnable();Thread thread = new Thread(runnable, "My First Thread");thread.start();System.out.println(thread.getName());在Runnable的实现类中,如果要获取线程名可以通过如下方式取得当前线程的引用:
Thread.currentThread();
0 0
- 线程之一:JAVA线程基础
- 线程之一:JAVA线程基础
- java线程学习基础
- Java基础 -- 线程
- Java基础 -- 线程2
- JAVA线程基础
- Java 线程基础
- Java线程基础1
- java线程基础
- java基础 线程
- Java 线程基础
- java 线程基础
- 十三、Java线程基础
- java线程基础
- java基础之线程
- JAVA线程基础(一)
- Java基础之线程
- java基础--线程总结
- powerDesigner学习一
- netshareadd
- hive UDF
- 关于OleDB连接Excel的Extended Properties(扩展属性)HDR=YES; IMEX=2个人理解心得
- 二分查找
- Java - 线程基础
- StrToInteger
- SP2010开发和VS2010专家"食谱"--第六章节--Web Services和REST(3)--使用Fiddler
- 【操作系统】可变分区存储管理,模拟实现
- 黑马程序员_HTML5新特性总结
- MemberCache学习摘要
- Django Managers 阅读批注(记忆的线索)
- 打印模块DEVMODE结构
- newff的训练参数