标签:sys 安全 一点 vat 编程 void final 接口 初始化
线程相关
1. 产生线程:
不同的线程会占用不同的系统cpu和磁盘速度等,它们在资源分配中产生竞争关系,而你无法控制这一点。这些被称为竞态条件。它们会导致线程可能不在你期望的时间运行结束。为了解决竞态条件的问题,人们有两种选择,轮询和回调。轮询就是让主函数不停询问线程,直到得到结果,但这并不是一个好办法,它会占用主函数里其他语句的运行时间。回调就是让线程告诉主函数它在什么时候运行结束。可以通过静态方法回调,也可以通过实例方法回调。实例方法回调时,线程类需要在它内部有一个对回调对象的引用。
2. 同步线程:
同步可以指定一部分程序只能由一个线程调用,避免了线程之间争抢资源。有两种方法可以进行同步:
同步可以解决线程安全问题,但是它并不总是最好的解决办法,还有一些其他的方法可以做到线程安全。
3. 线程死锁:
两个线程都抢占了一部分同步的资源,但都不愿意放弃已有的资源,就会发生死锁。
4. 线程调度:
线程有自己的优先级,通过setPriority来设置。
线程有两种调度方式,抢占式和协作式。抢占式会在轮到其他cpu时间时暂停当前线程,把cpu控制权交给其他线程。协作式则会等待当前线程运行完毕,再移交控制权。
一个线程有很多种方式可以进行被暂停,以让其他线程有机会运行。阻塞、放弃、休眠等等等等,等到需要用到的时候再来一一探究。
标签:sys 安全 一点 vat 编程 void final 接口 初始化
原文地址:https://www.cnblogs.com/chanonnn/p/12950283.html