线程的基本概念
2015-07-04 15:43
218 查看
线程:线程是一个程序里面不同的执行路径。
Java的线程是通过java.lang.Thread类来实现的。
VM启动时会有一个由主方法(public static void main(String[] args))所定义的线程。
可以通过创建Thread的实例来创建新的线程。
每个线程都是通过某个特定的Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。
通过调用Thread类的start()方法来启动一个线程。
我们写一个简单的例子程序:
项目结构:
package com.niepengfei.test;
public class Runner1 implements Runnable{
@Override
public void run() {
for(int i=0 ; i<100; i++){
System.out.println("runner:" + i);
}
}
}
package com.niepengfei.test;
public class TestThread1 {
public static void main(String[] args) {
Runner1 r1 = new Runner1();
Thread t = new Thread(r1);
//通过调用Thread类的start()方法来启动一个线程。
//如果是t.run();那么不是开启一个新的线程,而是简单的方法调用
t.start();
for(int i=0 ; i<100; i++){
System.out.println("main:" + i);
}
}
}
运行结果如下:
从结果可以分析出: 有两个线程在工作,一个是main线程,一个是runner线程。
Java的线程是通过java.lang.Thread类来实现的。
VM启动时会有一个由主方法(public static void main(String[] args))所定义的线程。
可以通过创建Thread的实例来创建新的线程。
每个线程都是通过某个特定的Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。
通过调用Thread类的start()方法来启动一个线程。
我们写一个简单的例子程序:
项目结构:
package com.niepengfei.test;
public class Runner1 implements Runnable{
@Override
public void run() {
for(int i=0 ; i<100; i++){
System.out.println("runner:" + i);
}
}
}
package com.niepengfei.test;
public class TestThread1 {
public static void main(String[] args) {
Runner1 r1 = new Runner1();
Thread t = new Thread(r1);
//通过调用Thread类的start()方法来启动一个线程。
//如果是t.run();那么不是开启一个新的线程,而是简单的方法调用
t.start();
for(int i=0 ; i<100; i++){
System.out.println("main:" + i);
}
}
}
运行结果如下:
从结果可以分析出: 有两个线程在工作,一个是main线程,一个是runner线程。
相关文章推荐
- C#线程间不能调用剪切板的解决方法
- C#线程同步的三类情景分析
- C#子线程更新UI控件的方法实例总结
- C++使用CriticalSection实现线程同步实例
- 基于C++实现的线程休眠代码
- VB读取线程、句柄及写入内存的API代码实例
- C#网络编程基础之进程和线程详解
- C#多线程处理多个队列数据的方法
- C#实现线程安全的简易日志记录方法
- C#中线程同步对象的方法分析
- ASP.NET线程相关配置
- 浅析linux环境下一个进程最多能有多少个线程
- C#实现终止正在执行的线程
- 解析Java线程同步锁的选择方法
- 深入Android线程的相关问题解惑
- 深入探讨linux下进程的最大线程数、进程最大数、进程打开的文件数
- Java线程关闭的3种方法
- JAVA实现线程的三种方法
- 深入Java线程中断的本质与编程原则的概述
- Java线程的控制详解