Java自学--线程
2013-12-16 15:34
316 查看
Java 多线程
1.thread
class MyThread extends Thread{ // 继承Thread类,作为线程的实现类
private String name ;// 表示线程的名称
public MyThread(String name){
this.name = name ;// 通过构造方法配置name属性
}
public void run(){// 覆写run()方法,作为线程 的操作主体
for(int i=0;i<10;i++){
System.out.println(name + "运行,i = " + i) ;
}
}
};
public class ThreadDemo02{
public static void main(String args[]){
MyThread mt1 = new MyThread("线程A ") ;// 实例化对象
MyThread mt2 = new MyThread("线程B ") ;// 实例化对象
mt1.start() ;
// 调用线程主体
mt2.start() ;
// 调用线程主体
}
};
1.runnable
class MyThread implements Runnable{ // 实现Runnable接口,作为线程的实现类
private String name ;// 表示线程的名称
public MyThread(String name){
this.name = name ;// 通过构造方法配置name属性
}
public void run(){// 覆写run()方法,作为线程 的操作主体
for(int i=0;i<10;i++){
System.out.println(name + "运行,i = " + i) ;
}
}
};
public class RunnableDemo01{
public static void main(String args[]){
MyThread mt1 = new MyThread("线程A ") ;// 实例化对象
MyThread mt2 = new MyThread("线程B ") ;// 实例化对象
Thread t1 = new Thread(mt1) ;// 实例化Thread类对象
Thread t2 = new Thread(mt2) ;// 实例化Thread类对象
t1.start() ;
// 启动多线程
t2.start() ;
// 启动多线程
}
};
Tread类无法实现资源共享,Runnable实现了资源共享
例子
1.thread
class MyThread extends Thread{ // 继承Thread类,作为线程的实现类
private int ticket = 5 ;// 表示一共有5张票
public void run(){// 覆写run()方法,作为线程 的操作主体
for(int i=0;i<100;i++){
if(this.ticket>0){
System.out.println("卖票:ticket = " + ticket--) ;
}
}
}
};
public class ThreadDemo04{
public static void main(String args[]){
MyThread mt1 = new MyThread() ;// 实例化对象
MyThread mt2 = new MyThread() ;// 实例化对象
MyThread mt3 = new MyThread() ;// 实例化对象
mt1.run() ;
// 调用线程主体
mt2.run() ;
// 调用线程主体
mt3.run() ;
// 调用线程主体
}
};
1.Runnable
class MyThread implements Runnable{ // 继承Thread类,作为线程的实现类
private int ticket = 5 ;// 表示一共有5张票
public void run(){// 覆写run()方法,作为线程 的操作主体
for(int i=0;i<100;i++){
if(this.ticket>0){
System.out.println("卖票:ticket = " + ticket--) ;
}
}
}
};
public class RunnableDemo02{
public static void main(String args[]){
MyThread mt = new MyThread() ;// 实例化对象
new Thread(mt).run() ;// 调用线程主体
new Thread(mt).run() ;// 调用线程主体
new Thread(mt).run() ;// 调用线程主体
}
};
资源共享时要进行同步操作
程序中过多的同步会产生死锁
1.thread
class MyThread extends Thread{ // 继承Thread类,作为线程的实现类
private String name ;// 表示线程的名称
public MyThread(String name){
this.name = name ;// 通过构造方法配置name属性
}
public void run(){// 覆写run()方法,作为线程 的操作主体
for(int i=0;i<10;i++){
System.out.println(name + "运行,i = " + i) ;
}
}
};
public class ThreadDemo02{
public static void main(String args[]){
MyThread mt1 = new MyThread("线程A ") ;// 实例化对象
MyThread mt2 = new MyThread("线程B ") ;// 实例化对象
mt1.start() ;
// 调用线程主体
mt2.start() ;
// 调用线程主体
}
};
1.runnable
class MyThread implements Runnable{ // 实现Runnable接口,作为线程的实现类
private String name ;// 表示线程的名称
public MyThread(String name){
this.name = name ;// 通过构造方法配置name属性
}
public void run(){// 覆写run()方法,作为线程 的操作主体
for(int i=0;i<10;i++){
System.out.println(name + "运行,i = " + i) ;
}
}
};
public class RunnableDemo01{
public static void main(String args[]){
MyThread mt1 = new MyThread("线程A ") ;// 实例化对象
MyThread mt2 = new MyThread("线程B ") ;// 实例化对象
Thread t1 = new Thread(mt1) ;// 实例化Thread类对象
Thread t2 = new Thread(mt2) ;// 实例化Thread类对象
t1.start() ;
// 启动多线程
t2.start() ;
// 启动多线程
}
};
Tread类无法实现资源共享,Runnable实现了资源共享
例子
1.thread
class MyThread extends Thread{ // 继承Thread类,作为线程的实现类
private int ticket = 5 ;// 表示一共有5张票
public void run(){// 覆写run()方法,作为线程 的操作主体
for(int i=0;i<100;i++){
if(this.ticket>0){
System.out.println("卖票:ticket = " + ticket--) ;
}
}
}
};
public class ThreadDemo04{
public static void main(String args[]){
MyThread mt1 = new MyThread() ;// 实例化对象
MyThread mt2 = new MyThread() ;// 实例化对象
MyThread mt3 = new MyThread() ;// 实例化对象
mt1.run() ;
// 调用线程主体
mt2.run() ;
// 调用线程主体
mt3.run() ;
// 调用线程主体
}
};
1.Runnable
class MyThread implements Runnable{ // 继承Thread类,作为线程的实现类
private int ticket = 5 ;// 表示一共有5张票
public void run(){// 覆写run()方法,作为线程 的操作主体
for(int i=0;i<100;i++){
if(this.ticket>0){
System.out.println("卖票:ticket = " + ticket--) ;
}
}
}
};
public class RunnableDemo02{
public static void main(String args[]){
MyThread mt = new MyThread() ;// 实例化对象
new Thread(mt).run() ;// 调用线程主体
new Thread(mt).run() ;// 调用线程主体
new Thread(mt).run() ;// 调用线程主体
}
};
资源共享时要进行同步操作
程序中过多的同步会产生死锁
相关文章推荐
- 黑马程序员 Java自学总结十一 线程
- java自学之路----- 包 线程(1)
- java自学之路-----线程(3) String
- Java自学资料——线程
- 自学Java系列 笔记4 线程安全
- JAVA自学历程——之一(简单线程实例)
- Java自学资料——线程
- [Java] 线程中断(二)
- java线程
- Java(线程的概念)(线程和进程的比较)(多线程的优点)
- Java结束线程的三种方法
- Java多线程系列--“基础篇”06之 线程让步
- java里面的线程
- Java线程(三):线程协作-生产者/消费者问题
- java线程之生产者消费者
- 创建Java线程的3种方式及对比
- Java 多线程 (PART XIX) 使用Condition实现线程的顺序执行
- Java中有几种方法可以实现一个线程
- JAVA线程队列BlockingQueue
- Java线程:堵塞队列与堵塞栈