什么是线程?
线程就是正在独立运行的一条执行路径,一个独立的执行单元。
什么是进程?
进程就是正在运行的程序,它是线程的集合。
代码的执行顺序靠那个线程?
在进程中,一定有一个线程,这个线程就是主线程。(比如Java中的main方法)
使用多线程有什么好处?
多线程的好处提高程序的效率。使用多线程时,每个线程互不影响,因为每个线程都在独立运行。
多线程的应用场景:
多线程下载、QQ、爬虫、前段开发ajax(异步上传),分布式job(需要同时一个执行多个任务调度),等。
有哪些方式可以创建多线程?
①使用继承Thread类方式,重写run方法。
②使用实现Runnable接口方式。
③使用匿名内部类方式。
④callable
⑤使用线程池创建线程。
什么是同步什么是异步?
①同步(单线程):代码从上往下进行执行。
②异步(多线程):开启多线程后,代码不会从上往下进行执行。
使用继承范式创建线程好还是实现Runnable接口创建线程好 ?
使用Runnable接口创建线程的方式更好,因为开发都是以面向接口编程,如果使用继承方式那么将不能继承其他类。
常用线程API方法:
①start():启动线程。
②current():获取当前线程对象。
③getID():获取当前线程ID。Thread-编号,该编号从0开始。
④getName():获取当前线程名称。
⑤sleep(long mill):休眠线程。
⑥stop:停止线程。
⑦Thread:分配一个新的Thread对象。
⑧Thread(Runnable r):分配一个新的Thread对象,具有指定的name正如其名。
⑨Thread(Runnable r):分配一个新的Thread对象。
⑩Thread(Runnable r,Runnable r):分配一个新的Thread对象,具有指定的name正如其名。
什么是守护线程?
Java中有两种线程,一种是用户线程,另一种是守护线程。
用户线程是指用户自定义创建的线程,主线程停止,用户线程不会停止
护线程当进程不存在或主线程停止,守护线程也会被停止。
使用setDaemon(true)方法设置为守护线程。
多线程的几种状态:
①新建状态
②准备状态
③运行状态
④休眠状态
⑤ 停止状态
Join方法作用:
join()方法是让其他线程变为等待,
t1.join() //让其他线程变为等待,直到线程t1执行完毕才释放。