您的位置:首页 > 其它

多线程基础

2015-11-11 17:36 176 查看
[b]什么叫多线程?[/b]

多线程:顾名思义就是多条线程同时进行,它是从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

多线程的优缺点有哪些?

优点:

(1)多线程技术使程序的响应速度更快 ,因为用户界面可以在进行其它工作的同时一直处于活动状态;

(2)当前没有进行处理的任务时可以将处理器时间让给其它任务;

(3)占用大量处理时间的任务可以定期将处理器时间让给其它任务;

(4)可以随时停止任务;

(5)可以分别设置各个任务的优先级以优化性能。

缺点:

(1)等候使用共享资源时造成程序的运行速度变慢。这些共享资源主要是独占性的资源 ,如打印机等。

(2)对线程进行管理要求额外的 CPU开销。线程的使用会给系统带来上下文切换的额外负担。当这种负担超过一定程度时,多线程的特点主要表现在其缺点上,比如用独立的线程来更新数组内每个元素。

(3)线程的死锁。即较长时间的等待或资源竞争以及死锁等多线程症状。

[b]多线程的使用场合?[/b]

(1)耗时或大量占用处理器的任务阻塞用户界面操作;

(2)各个任务必须等待外部资源 (如远程文件或 Internet连接)。

(3)文件上传下载

下面演示一下多线程的基本用法:

package com.thinkive.DuoXianCheng;

public class Test extends Thread {

@Override
public void run() {
System.out.println(getName() + "线程开始运行");
for (int i = 0; i < 3; i++) {
System.out.println("我是"+getName()+i);
}
System.out.println(getName() + "结束运行");
}

public static void main(String[] args) {
Thread t1 = new Test();//创建第一条线程
Thread t2 = new Thread(new demo(), "李四");//分配新的 Thread 对象,创建第二条线程

t1.setName("张三");
t1.start();  //使该线程开始执行;Java 虚拟机调用该线程的 run 方法。

t2.start();
}
}

//注意:在同一个文件中创建多个类,这个文件只能有一个类被public修饰
class demo implements Runnable {

@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "线程开始运行!");
for (int i = 0; i < 3; i++) {
System.out.println("我是"+Thread.currentThread().getName()+i);
}
System.out.println(Thread.currentThread().getName() + "结束运行!");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: