java 多线程

1.线程和进程的区别

一个进程中可能包含多个线程,线程是不能单独存在的。当一个线程占用了某个内存空间,其他线程就只能等到。

如果一个进程没有了,线程一定会消失;但线程消失了,进程未必会消失。而且线程都是在进程的基础上并发同时运行

2.CPU中的线程是通过时间片切换的。(cup有永远执行的是优先级最高的线程。而且是无规律的)。

线程在cup中是并行的。执行顺序是同时并行进行的(时间上说同一时间)。执行顺序不固定。


3.Thread 和Runnable的区别

实现Runnable接口的类比继承Thread的类扩展性强。java单继承。

4.Thread.sleep():sleep的方法是占用cpu资源。不释放,字段代码执行完成。

5.wait与notifyAll

调用wait的时候释放同步锁。释放同步锁的时候必须拥有同步锁。必须要写在同步(synchronized)里面。

wait必须结合同步(synchronized)使用 。notifyAll 必须结合同步(synchronized)使用

6.非静态同步方法和静态同步方法

非静态同步方法(synchronized)是对this对象加锁。其他线程可以调用类里面的非同步方法。

7.静态方法跟类有关,跟实例无关。静态同步(synchronized)锁的是类本身。跟实例无关(this)

8.同步方法与同步方法才有锁的竞争。(包括静态同步与非静态同步)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值