创建线程的方式
来源:互联网 发布:jquery.history.js 编辑:程序博客网 时间:2024/06/05 16:33
第一:写一个类,集成Thread类,重写run方法,实例化这个类,调用strat方法
package test06;
public class T extends Thread{
public void run() {
for(;;)
System.out.println(1);
}
}
package test06;
public class Test {
public static void main(String[] args) {
T t = new T(); //这个就是new ,新建状态
t.start(); //runnable -->调用完之后就成了running
//然后再执行T里面run方法的1,执行完1。就是在执行下面的111,所以说叫多线程。
因为在调用strat的时候就分为两支,所以输出顺序不定。
for(;;)
System.out.println(111);
}
}
第二种:写一个类,实现Runnable接口,实现run方法,实例化Thread的类,实例化这个类,作为
参数传输Thread构造器,调用strat方法
package test06;
public class I implements Runnable{
public void run() {
for(;;)
System.out.println(222);
}
}
package test06;
public class Test {
public static void main(String[] args) {
T t = new T(); //这个就是new ,新建状态
t.start(); //runnable -->调用完之后就成了running
//然后再执行T里面run方法的1,执行完1。就是在执行下面的111,所以说叫多线程。
因为在调用strat的时候就分为两支,所以输出顺序不定
/ /new一个Thread类,调用构造方法
Thread t1 = new Thread(new I()); //new新建状态
t1.start();//runnable -->调用完之后就成了running
}
}
总结
因为每次不管继承还是实现都要写一个类,一个类要继承一个类,一个类要实现一个借口,这样很麻烦,用内部类来写多线程,比较简单一点
用匿名内部类来写多线程
继承类的方式
package test06;
public class Test {
public static void main(String[] args) {
//匿名内部类写多线程实现
new Thread(){
public void run(){
for(;;)
System.out.println(333);
}
}.start();
}
}
实现接口的方式
package test06;
public class Test {
public static void main(String[] args) {
//匿名内部类写多线程实现(实现接口的方式)
new Thread(new Runnable(){
public void run(){
for(;;)
System.out.println(444);
}
}).start();
}
}
package test06;
public class T extends Thread{
public void run() {
for(;;)
System.out.println(1);
}
}
package test06;
public class Test {
public static void main(String[] args) {
T t = new T(); //这个就是new ,新建状态
t.start(); //runnable -->调用完之后就成了running
//然后再执行T里面run方法的1,执行完1。就是在执行下面的111,所以说叫多线程。
因为在调用strat的时候就分为两支,所以输出顺序不定。
for(;;)
System.out.println(111);
}
}
第二种:写一个类,实现Runnable接口,实现run方法,实例化Thread的类,实例化这个类,作为
参数传输Thread构造器,调用strat方法
package test06;
public class I implements Runnable{
public void run() {
for(;;)
System.out.println(222);
}
}
package test06;
public class Test {
public static void main(String[] args) {
T t = new T(); //这个就是new ,新建状态
t.start(); //runnable -->调用完之后就成了running
//然后再执行T里面run方法的1,执行完1。就是在执行下面的111,所以说叫多线程。
因为在调用strat的时候就分为两支,所以输出顺序不定
/ /new一个Thread类,调用构造方法
Thread t1 = new Thread(new I()); //new新建状态
t1.start();//runnable -->调用完之后就成了running
}
}
总结
因为每次不管继承还是实现都要写一个类,一个类要继承一个类,一个类要实现一个借口,这样很麻烦,用内部类来写多线程,比较简单一点
用匿名内部类来写多线程
继承类的方式
package test06;
public class Test {
public static void main(String[] args) {
//匿名内部类写多线程实现
new Thread(){
public void run(){
for(;;)
System.out.println(333);
}
}.start();
}
}
实现接口的方式
package test06;
public class Test {
public static void main(String[] args) {
//匿名内部类写多线程实现(实现接口的方式)
new Thread(new Runnable(){
public void run(){
for(;;)
System.out.println(444);
}
}).start();
}
}
阅读全文
0 0
- 创建线程的方式
- 创建线程的方式
- 创建线程的方式
- 创建线程的方式
- 线程的创建方式
- 线程的创建方式
- 线程的创建方式
- 创建线程的方式
- 线程的创建方式一
- 线程创建的两个方式
- 线程及其创建的方式
- 线程的创建方式问题
- Java线程的创建方式
- 创建传统线程的方式
- 自定义线程的创建方式
- 自定义线程的创建方式
- Java 创建线程的方式
- java创建线程的方式
- RxSwift样例五 GitHubSignup
- Android二维码扫描教程
- 利用build_tools 里的aapt查看 apk包信息(versionCode,versionName,包名等)
- HDOJ 1426 Sudoku Killer (DFS)
- 64位CentOS 6.5下搭建LAMP环境详细步骤
- 创建线程的方式
- Eclipse 快捷键
- Qtcreator远程调试出现“The selected build of GDB does not support Python scripting.It cannot be used .."
- 欢迎使用CSDN-markdown编辑器
- ReactNative异常:{"errno":-4048,"code":"EPERM","syscall":"lstat"。。。
- workBench Error Code: 1046. No database selected Select the default DB to be used by double-clicking
- 刷题——Ant Counting POJ
- 高并发 简述
- python 数据结构一 之 线性表