1.什么是多线程?
在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为“多线程”,并且多个线程交替占用CPU资源,而非真正的并行执行,多线程的本质是抢CPU资源
2.在Java中创建线程的两种方法?
继承java.lang.Thread类
1.继承Thread类
2.重写run()方法
3.调用start()方法启动该线程
- public class MyThread extends Thread{
- //重写run()方法
- public void run(){
- for(int i=1;i<100;i++){ System.out.println(
- Thread.currentThread().getName()+":"+i);
- }}}
- public static void main(String[] args) {
- MyThread thread = new MyThread();
- thread.start(); //启动线程
实现java.lang.Runnable接口
1.实现Runnable接口
2.实现run()方法,编写线程执行体
3.创建线程对象,调用start()方法启动线程
- public class MyRunnable implements Runnable{
- public void run(){
- for(int i=1;i<100;i++){ System.out.println(
- Thread.currentThread().getName()+":"+i);
- }}}
- public static void main(String[] args) {
- MyRunnable myRunnable = new MyRunnable();
- Thread myThread = new Thread(myRunnable);
- thread.start(); //启动线程}
3.操作线程的步骤?

4.直接调用run()和start()区别接调用run()和start()区别 ?

5.比较两种创建线程的方式?
6.线程的五个状态?
7.线程的优先级?
从1-10,1最低,默认5,优先级高低表示抢占CPU概率的大小
8.线程礼让?
9.线程上锁--synchronized关键字
访问修饰符 synchronized 返回类型 方法名(参数列表){……}
使用synchronized关键字修饰的代码块
synchronized(syncObject){
//需要同步的代码
}
解决:多个并发线程访问同一资源的同步代码块时?
10.线程安全的类型
| 方法是否同步 | 效率比较 | 适合场景 | |
| 线程安全 | 是 | 低 | 多线程并发共享资源 |
| 非线程安全 | 否 | 高 | 单线程 |
