什么是线程什么是进程?
对于Java来说,咱运行一段Java程序就是一个段进程。
在一段进程中,我们可以创建多个线程,每一个线程都有自己独立的属性和本地内存。
对于操作系统来讲,进程是操作系统分配资源的基本单位,线程是操作系统调度资源的基本单位。
线程有哪几种状态?
创建成功但还没有调用,运行中,等待,超时等待,堵塞,结束
线程创建有哪几种方式?
有两类,一是继承,二是实现接口
继承类的话是Thread
实现接口的话是Runable,Callable。
为什么一般使用实现接口而不是继承?
因为Java中只有单继承而没有多继承,继承了Thread类之后就无法继承其他类了,但是Java可以实现多个接口,然后如果继承的话就会增加花销。
Java中interrupted和isInterrupted方法的区别?
interrupt的作用是中断线程
interrupted,调用该方法时会对线程做出判断,返回true或flase,true的话就是中段信号,如果第一次返回true的话,以后就会返回flase,这是因为清除中断了已经
isInterrupted,调用该方法也会返回true或flase,但是这个的话不会清除中断。
线程之间是如何通信以及线程之间是如何同步的?
在并发编程中有两个比较重要的问题是线程之间是如何通信以及线程之间是如何同步,其实是因为,消息传递和内存共享
什么是ThreadLocal?说一说你对Threadlocal的理解?
ThreadLocal是一个线程变量,对于ThreadLocal填充的变量来说,它只属于当前线程,也就是说对于其他线程来说他是独立的,ThreadLocal给其他线程也创立了副本内存空间。
ThreadLocalMap中他创建的变量就为key,其他对象为v,他是附着与当前线程的,不管线程运行到什么地方,都是可以根据key来获取到值的,改变内用set,得到的话就用get