java中线程的简单的线程的多线程的一个区别
2012-07-23 11:33
309 查看
public class Lesson5
{
private static int i = 0;
public static void main(String [] args)
{
/* 当我们运行main函数的时候,我们就是在运行主函数
* 因为这是一个单线程,所以只有在运行完LessonDemo1的run函数的代码之后
* 才会去运行Lesson5的里面的代码
* 但是如果我们把LessonDemo1放在另外一个线程中
* 那么LessonDemo1和Lesson5就会运行两个不同的线程中
* 其实运行在两个不同的线程中,那么这两个线程的代码就是相对独立的运行
*
*
*/
new LessonDemo1().run();
while(i < 10)
{
System.out.println("Main():" + Thread.currentThread().getName());
i++;
}
}
}
class LessonDemo1
{
private int j = 0;
public void run()
{
while(j < 10)
{
System.out.println("LessonDemo1:" + Thread.currentThread().getName());
j++;
}
}
}
/*
*这是一个多线程的实例:首先我们在主线程中开启了另外一个线程
*然后在主线程中又执行了另外的代码
*那么此时我们的主线程和我们自己建立的另外一个线程,就有了两个线程
*其实,我们建立的线程并不是在同时运行,而是看谁抢到cpu的内存空间,我们就运行谁
*所以这两个线程是在不断的抢夺之中,所以我们打印出来的线程名称也是相互交换的。
*/
class Lesson5TestDemo1
{
private static int i = 0;
public static void main(String [] args)
{
new Lesson5TestDemo2().start();
while(i < 10)
{
System.out.println("LessonTestDemo1:" +Thread.currentThread().getName());
i++;
}
}
}
class Lesson5TestDemo2 extends Thread
{
private int j = 0;
public void run()
{
while(j < 10)
{
System.out.println("LessonTestDemo2" + Thread.currentThread().getName());
j++;
}
}
}
{
private static int i = 0;
public static void main(String [] args)
{
/* 当我们运行main函数的时候,我们就是在运行主函数
* 因为这是一个单线程,所以只有在运行完LessonDemo1的run函数的代码之后
* 才会去运行Lesson5的里面的代码
* 但是如果我们把LessonDemo1放在另外一个线程中
* 那么LessonDemo1和Lesson5就会运行两个不同的线程中
* 其实运行在两个不同的线程中,那么这两个线程的代码就是相对独立的运行
*
*
*/
new LessonDemo1().run();
while(i < 10)
{
System.out.println("Main():" + Thread.currentThread().getName());
i++;
}
}
}
class LessonDemo1
{
private int j = 0;
public void run()
{
while(j < 10)
{
System.out.println("LessonDemo1:" + Thread.currentThread().getName());
j++;
}
}
}
/*
*这是一个多线程的实例:首先我们在主线程中开启了另外一个线程
*然后在主线程中又执行了另外的代码
*那么此时我们的主线程和我们自己建立的另外一个线程,就有了两个线程
*其实,我们建立的线程并不是在同时运行,而是看谁抢到cpu的内存空间,我们就运行谁
*所以这两个线程是在不断的抢夺之中,所以我们打印出来的线程名称也是相互交换的。
*/
class Lesson5TestDemo1
{
private static int i = 0;
public static void main(String [] args)
{
new Lesson5TestDemo2().start();
while(i < 10)
{
System.out.println("LessonTestDemo1:" +Thread.currentThread().getName());
i++;
}
}
}
class Lesson5TestDemo2 extends Thread
{
private int j = 0;
public void run()
{
while(j < 10)
{
System.out.println("LessonTestDemo2" + Thread.currentThread().getName());
j++;
}
}
}
相关文章推荐
- Java多线程-一个简单的线程,实现挂起和恢复的功能
- Java多线程-一个简单的线程,实现挂起和恢复的功能
- Java多线程-一个简单的线程,实现挂起和恢复的功能
- 【Java面试题】26 多线程有几种实现方法?同步有几种实现方法? 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
- 多线程学习---写一个简单的线程
- java 使用线程做一个简单的ATM存取款实例.(转)
- Java多线程(二)、启动一个线程的3种方式
- 黑马程序员-19-java基础-多线程(2)-死锁与线程间通信(synchronized与Lock的区别及各自用法)
- 在Java中使用多线程结合断点续传实现一个简单的文件下载器
- Java多线程(二)、启动一个线程的3种方式
- 一个简单的java多线程例子
- JAVA多线程的一个简单案例
- java notify和notifyAll的区别 首先从名字可以了解,notify是通知一个线程获取锁,notifyAll是通知所有相关的线程去竞争锁。 notify不能保证获得锁的线程,真正需要锁
- 用Java写一个多线程程序,如写四个线程,二个加1,二个对一变量减一,输出:
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
- Java Tread多线程(0)一个简单的多线程实例
- java之多线程(一)进程和线程的区别
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数
- 多线程(三) java中线程的简单使用
- java多线程编程--如何终止一个线程