一、什么是应用程序
可以执行的软件 ,如QQ,微信等
二、什么是进程
进程是正在运行的应用程序,是多个线程的集合。任何软件只要运行起来肯定会有一个进程进行展示,是执行中的程序
三、什么是线程
是进程中正在独立运行一条执行路径,在进程中一定有一个线程,这个线程就是主线程
四、什么的多线程
就是为了提高程序的效率,并不是提高宽带速度而只是程序效率
五、多线程的应用场景
多线程下载、QQ、爬虫、前端开发ajax(异步上传)、分布是job(需要同时一个执行多个任务调度)、使用多线程体现程序的效率
六、如何创建多线程
1.使用继承Therad类方式
class CreateThread extends Thread { // run方法中编写 多线程需要执行的代码 publicvoid run() { for (inti = 0; i< 10; i++) { System.out.println("i:" + i); } } } publicclass ThreadDemo { publicstaticvoid main(String[] args) { System.out.println("-----多线程创建启动-----"); new CreateThread().start(); //执行 } }
2.使用实现runlabe接口方式
class CreateRunnable implements Runnable { @Override publicvoid run() { for (inti = 0; i< 10; i++) { System.out.println("i:" + i); } } } publicclass ThreadDemo2 { publicstaticvoid main(String[] args) { System.out.println("-----多线程创建开始-----"); // 1.创建一个线程 CreateRunnable createThread = new CreateRunnable(); // 2.开始执行线程 注意 开启线程不是调用run方法,而是start方法 System.out.println("-----多线程创建启动-----"); Thread thread = new Thread(createThread); thread.start(); System.out.println("-----多线程创建结束-----"); } }
3.使用匿名内部类方式
System.out.println("-----多线程创建开始-----"); Thread thread = new Thread(new Runnable() { public void run() { for (int i = 0; i< 10; i++) { System.out.println("i:" + i); } } } thread.start(); //执行 System.out.println("-----多线程创建结束-----");
4.callable
5.使用线程池创建线程
七、使用继承Thread类还是使用实现Runnable接口好?
使用runnable接口好,原因实现了接口还可以继续继承,继承了类不能再继承。
八、什么是同步
必须按照顺序来执行,代码从上往下进行执行
九、什么是异步
多线程,多线程之间每个线程互不影响。
十、获取线程对象以及名称
1.常用线程api方法
启动线程:start()
获取当前线程对象:currentThread()
获取当前线程ID:getID()
获取当前线程名称:getName()
休眠线程:sleep(long mill)
停止线程:Stop()
2.常用线程构造函数
分配一个新的 Thread 对象:Thread()
分配一个新的 Thread 对象具有指定的 name正如其名:Thread(String name)
分配一个新的 Thread 对象:Thread(Runabler)
分配一个新的 Thread 对象:Thread(Runabler,String name)
十一、多线程运行状态
1、新建状态
2、就绪状态
3、运行状态
4、阻塞状态
5、死亡状态