您的位置:首页 > 编程语言 > Java开发

Java多线程简介和两种实现方法

2016-07-15 14:37 429 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u010552246/article/details/51917601

Java线程简介

java线程工具和API看似简单。但是,编写有效的使线程的复杂程序并不容易。这里简单给大家介绍:线程是什么、线程为什么有用以及怎么开始编写使用线程的简单程序。

线程基础

什么是线程

几乎每种操作系统都支持进程的概念——进程就是在某种程度上相互隔离、独立运行的程序。

线程化是允许许多个活动共同存在于一个进程中的工具。大多数现代化的操作系统都支持线程,而且线程的概念以各种形式存在了很多年。Java是第一个在语言本身中显式地包含课主流编程语言,它没有把线程化看做是底层操作系统的工具。

有时候,线程也称作轻量级进程。就像进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈。自己的程序计数器和自己的局部变量、。但是,与分隔的进程相比,进程中的线程隔离程度要小,他们共享内存、文件句柄和其他每一个进程应有的状态。

进程支持度奥格线程,他们看似同时执行,但是相互之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着他们可以访问相同的变量和对象,而且他们从同一堆中分配对象。尽管这让线程之间共享信息变得容易,但是你必须小心,确保它们不会妨碍同一进程里的其他线程。

每个Java程序都使用线程

每个Java程序都至少有一个线程——主线程。当一个Java程序启动时,JVM会创建主线程,并在该线程中调用main()方法。

JVM还创建其他线程,只是我们通常看不到,例如:垃圾收集、对象终止、和其他JVM内务出路相关的线程。

为什么要使用线程

在Java程序中使用线程有很多的原因。如果你使用Swing、servlet、RMI或者Enterprise JavaBeans(EJB)技术,你也许没有意识到你已经使用线程了。

使用线程的一些原因:
* 使UI响应更快
* 利用多处理器系统
* 简化建模
* 执行异步或者后台处理

线程的创建方式

新建Thread类

Thread thread = new Thread() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread.name: " + Thread.currentThread().getName());
}

}
};
thread.start();

实现Runnable接口

new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread.name: " + Thread.currentThread().getName());
}
}
}).start();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: