1简介
1.1 并发
要想充分发挥处理器系统的强大计算能力,最简单的方式就是使用线程。
使用进程的原因:资源利用率;公平性;便利性
不同的程序在单独的进程中运行
线程允许在同一个进程中存在多个程序控制流,线程会共享进程范围内的资源。但每个线程都有各自的程序计数器、栈以及局部变量
线程也被称为轻量级进程,大多数的操作系统都是以进程为基本的调度单位。
1.2 线程的优势
线程可以有效地降低程序的开发和维护等成本,同时提升复杂应用程序的性能
发挥多处理器的强大能力
建模的简单性
异步事件的简化处理
响应更灵敏的用户界面
1.3 线程模块
Timer Timer类的作用是使任务在稍后的时刻运行,或者运行一次,或者周期性地运行
Servlet 和 **JavaServer Page(JSP)**Servlet 框架用于部署网页应用程序以及分发来自HTTP客户端的请求
远程方法调用(Remote Method Invocation,RMI ) RMI 使代码能够调用在其他JVM中运行的对象
Swing和AWT
2 线程安全
3 线程
线程的三种实现方式,
3.1继承Thread类
写一个类继承thread,重写run方法,调用start开启线程
public class TestThread {
public static void main(String[] args) {
Mythread thread=new Mythread();
//start方法启动线程,运行run()函数,直接调用run函数,不会启动线程
//start()方法只是为了开启一个新的栈空间,只要新的栈空间开辟,start()方法瞬间结束,线程启动成功
//启动的线程会自动调用run方法,并且run方法在分支栈的栈底部
//run方法在分支栈底部,main方法在主栈底部,run和main是平级的
thread.start();
for(int i=0;i<100;i++)
{
System.out.println("主线程---->"+i);
}
}
}
class Mythread extends Thread{
@Override
public void run() {
for(int i=0;i<100;i++)
{
System.out.println("分支线程----->"+i);
}
}
}
3.2实现Runnable接口
类实现Runnable接口,重写run方法,