大家好,欢迎来到IT知识分享网。
1.进程,线程:
所谓进程(process)就是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。
进程中所包含的一个或多个执行单元称为线程(thread)。
一个线程是进程的一个顺序执行流.
2. 并发:
微观上所有进程和线程是走走停停的,宏观上都在运行,这种都运行的现象叫并发,但是不是绝对意义上的“同时发生。
线程调度机制是OS提供的一个用于并发处理的程序。java虚拟机自身也提供了线程调度机制,用于减轻OS切换线程带来的更多负担。
3.创建线程
java.lang.Thread类是线程类;
Thread创建线程:
01. public class TestThread extends Thread{
02.
03. public void run() {
04. for(int i=0;i<10;i++){
05. System.out.println("我是线程");
06. }
07. }
08. }
启动线程:
Thread thread = new TestThread();//实例化线程
thread.start();//启动线程
匿名类方式创建线程 :
Thread thread = new Thread(){ //匿名类方式创建线程
public void run(){
//线程体
}
};
thread.start();//启动线程
4.获取线程信息:
- long getId():返回该线程的标识符
- String getName():返回该线程的名称
- int getPriority():返回线程的优先级
- Thread.state getState():获取线程的状态
- boolean isAlive():测试线程是否处于活动状态
- boolean isDaemon():测试线程是否为守护线程
- boolean isInterrupted():测试线程是否已经中断
-
public class TestThread { 02. public static void main(String[] args) { 03. Thread current = Thread.currentThread(); 04. long id = current.getId(); 05. String name = current.getName(); 06. int priority = current.getPriority(); 07. Thread.State state = current.getState(); 08. boolean isAlive = current.isAlive(); 09. boolean isDaemon = current.isDaemon(); 10. boolean isInterrupt = current.isInterrupted(); 11. System.out.println("id:"+id); 12. System.out.println("name:"+name); 13. System.out.println("priority:"+priority); 14. System.out.println("state:"+state); 15. System.out.println("isAlive:"+isAlive); 16. System.out.println("isDaemon:"+isDaemon); 17. System.out.println("isInterrupt:"+isInterrupt); 18. } 19. }
5.线程优先级:
Thread.MIN_PRIORITY //最低1
Thread.MAX_PRIORITY //最高10
Thread.NORM_PRIORITY //默认5
6.守护线程
守护线程与普通线程在表现上没有什么区别;
守护线程的特点是,当进程中只剩下守护线程时,所有守护线程强制终止。
7.Thread的静态方法sleep用于使当前线程进入阻塞状态:
8.锁机制:
Java提供了一种内置的锁机制来支持原子性:
同步代码块(synchronized 关键字 ),同步代码块包含两部分:一个作为锁的对象的引用,一个作为由这个锁保护的代码块。
①静态方法锁:
01. public synchronized static void xxx(){ 02. …. 03. }
9.线程安全API/非线程安全API
非线程安全:
StringBuilder; ArrayList; LinkedList ;HashSet; HashMap
线程安全:
StringBuffer; Vector;Hashtable;10.线程池:
主要作用:①控制线程数量 ②重用线程
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/20760.html