大龄屌丝自学笔记Java零基础到菜鸟033

多线程的概述、意义、实现方法、优先级、控制、生命周期、安全性,线程安全类

1、概述

进程:正在运行的程序,是系统进行资源分配的独立单位。每一个进程都有自己的内存空间和系统资源。

线程:进程中的单个控制流,是进程的一条执行路径。

单线程:一个应用程序只有一条执行路径。

单线程:一个应用程序拥有多条执行路径。

JVM的启动是多线程的,至少启动了主线程(main)和垃圾回收线程。

2、意义

多进程提高CPU的使用率,多线程提高应用程序使用率(抢CPU资源)。

3、实现方法

(1)、继承Thread类:自定义类继承Thread,重写run();方法,创建对象,启动线程【th.start();】。

(2)、实现Runnable接口:自定义类实现Runnable接口,重写run();方法,创建对象,创建Thread对象并传递参数启动线程【new Thread(ru).start();】。

实现接口方式的好处

4、优先级

setPriority(); 。线程的优先级默认为5,范围1~10。

5、控制

sleep();

join();

yield();

setDaemon();

stop();

interrupt();

6、生命周期(新建、就绪、运行、阻塞、死亡)

7、安全性

多线程可能出现的问题:是否有多线程环境,是否有共享数据,是否有多条语句操作共享数据。

同步解决线程安全问题:synchronized,如:synchronized(对象【obj】){ 同步的内容【代码块】 }。

同步的特点

注意事项:同步解决线程安全问题的关键在【对象】上,该【对象】如同锁的功能,所以多线程必须是同一把锁(同一个【对象】)。

8、线程安全类

StringBuffer,Vector,Hashtable。

Collections类的方法,可以将线程不安全的集合类变为线程安全的集合类。

原文地址:https://www.cnblogs.com/liverpool/p/4870324.html