/**
- 多线程
- 1.什么是线程:就是程序的一条执行路径
- 2.什么是进程:它就是一个程序集,一个进程包含多条线程
- 例如:QQ中的每一个聊天就是一个线程路径。
- 多线程只有并发执行才会提升程序效率可以完成多项任务
- 多线程的并发和并行的概念
- 我们一般在自己的电脑中可以玩游戏的同时还可以听音乐,两个进程在并行执行(cpu多核)
*并发:有两个任务想要同时进行,但是cpu单核(只能接受一个任务),这样就会将这两个任务安排轮流执行
*由于时间的间隔比较短。大家就会以为这两个任务都在执行 - @author Administrator
*Java程序的运行原理
*Java的程序在启动的时候会执行JVM,就会启动一个应用程序,也就相当于启动一个进程
*该进程就会启动主线程(main方法),才会调用类中的main方法
*JVM的启动是不是多线程?是多线程的。(垃圾回收的线程,主线程)
*多线程的实现:1、继承Thread:重写run;
2、实现Runnable接口:run;
启动线程start方法
/
/*
- 线程休眠sleep方法
- static void sleep(long millis, int nanos) 在指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠(暂停执行)休眠时间过后会自动恢复执行
- @author Administrator
/
/*
- void setDaemon(boolean on) 将该线程标记为守护线程或用户线程。
- 如果设置该线程为守护线程,该线程不会单独执行,当其他的非守护线程执行结束后会自动退出
- 从执行的结果如何理解程序:
正在执行QQ程序的为非守护线程,聊天的窗口为守护线程,无论有多少个聊天窗口,只要程序关闭
其他窗口也应该关闭。在程序中大家可以看到关闭后的守护线程需要一些缓冲时间,所以才会多输出几次窗口的信息。
- @author Administrator
/
/*
- static Thread currentThread() 返回对当前正在执行的线程对象的引用。 Thread.currentThread()
- String getName() 返回该线程的名称。
- void setName(String name) 改变线程名称,使之与参数 name 相同。
- @author Administrator
*/