Java并发编程--多线程之HelloWorld
来源:互联网 发布:linux解压bz2文件 编辑:程序博客网 时间:2024/06/05 07:06
上篇博客我们介绍了一些基本概念,进程、线程、并发。下面我们开始写第一个多线程的程序。
两种方式:一、实现Runnable接口;二、基础Thread类。
一、实现Runnable接口
package com.tgb.klx.thread;public class hello1 implements Runnable {public hello1() {}public hello1(String name) {this.name = name;}public void run() {for (int i = 0; i < 5; i++) {System.out.println(name + "运行 " + i);}}public static void main(String[] args) {hello1 h1 = new hello1("线程A");Thread demo1 = new Thread(h1);hello1 h2 = new hello1("线程B");Thread demo2 = new Thread(h2);demo1.start();demo2.start();}private String name;}
运行结果:
二、基于Thread类
package com.tgb.klx.thread;public class hello2 extends Thread {public hello2() {}public hello2(String name) {this.name = name;}public void run() {for (int i = 0; i < 5; i++) {System.out.println(name + "运行 " + i);}}public static void main(String[] args) {hello2 h1 = new hello2("A");hello2 h2 = new hello2("B");h1.start();h2.start();}private String name;}
运行结果:
实现Runnable接口的方式,需要创建一个Thread类,将实现runnable的类的实例作为参数传进去,启动一个线程,如果直接调用runnable的run方法跟调用普通类的方法没有区别,不会创建新的线程。
Thread类实现了Runnable接口,Thread类也有run方法,调用Thread的run方法同样也不会新建线程,和调用普通方法没有区别,所以大家在使用多线程时一定要注意。
总结:
以上两种方式都可以实现,具体选择哪种方式根据情况决定。java里面不支持多继承,所以实现runnable接口的方式可能更灵活一点。
1 0
- Java并发编程--多线程之HelloWorld
- Java多线程之HelloWorld
- Java多线程并发编程之变量
- 《java多线程编程核心技术》之并发访问
- Java多线程并发编程之二volatile
- Java 多线程并发编程之 Synchronized 关键字
- Java 多线程并发编程之 Synchronized 关键字
- Java 多线程并发编程之 Synchronized 关键字
- java编程思想之并发(认识多线程)
- java多线程与并发之java并发编程实践(一)
- java多线程与并发之java并发编程实践(二)
- java多线程与并发之java并发编程实践(三)
- java多线程与并发之java并发编程实践(四)
- java多线程与并发之java并发编程实践(五)
- java多线程与并发之java并发编程实践(六)
- java多线程与并发之java并发编程实践(七)
- java多线程与并发之java并发编程实践(八)
- java多线程与并发之java并发编程实践(九)
- SQL数据库——计算列
- TextView的drawableLeft与文本一起居中显示(以及代码设置drawableLeft)
- eclipse中设置文件编辑器
- HTTP 请求方式: GET和POST的比较
- 排序算法大集锦_插入类——直接插入排序
- Java并发编程--多线程之HelloWorld
- IOS开发各类之间的继承关系图
- 研发项目管理软件对比调研报告
- request模糊匹配name参数取值
- Ubuntu 12.04下关闭图形界面,启动文本模式
- activiti-5.17 暂不支持servlet 2.5即tomcat6 .
- Windows 下主程序与动态库(*.dll)释放对方分配的内存操作要点
- 去掉Xcode工程中的某种类型的警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32
- Java中可变长参数的使用及注意事项