线程的定义给我们提供了并发执行多个任务的方式,大多数情况下我们会让每个任务都自行执行结束,这样能保证事务的一致性,但是有时我们希望在任务执行中取消任务,使线程停止。在java中要让线程安全、快速、可靠地停下来并不是一件容易的事,java也没有提供任何可靠的方法终止线程的执行。回到第六小节,线程调度策略中有抢占式和协作式两个概念,与之类似的是中断机制也有协作式和抢占式。
历史上Java曾经使用st...
分类:
编程语言 时间:
2014-11-23 23:19:06
阅读次数:
341
在Java多线程环境中,为保证所有线程的执行能按照一定的规则执行,JVM实现了一个线程调度器,它定义了线程调度的策略,对于CPU运算的分配都进行了规定,按照这些特定的机制为多个线程分配CPU的使用权。这小节关注线程如何进行调度,了解了java线程调度模式有助于后面并发框架的深入探讨。
一般线程调度模式分为两种——抢占式调度和协同式调度。抢占式调度指的是每条线程执行的时间、线程的切换都由系统控...
分类:
编程语言 时间:
2014-11-14 21:18:04
阅读次数:
290
一、概括
(1)自旋锁适用于SMP系统,UP系统用spinlock是作死。
(2)保护模式下禁止内核抢占的方法:1、执行终端服务例程时2、执行软中断和tasklet时3、设置本地CPU计数器preempt_count
(3)自旋锁的忙等待的实际意义是:尝试获取自旋锁的另一个进程不断尝试获取被占用的自旋锁,中间只pause一下!
(4)在抢占式内核的spin_lock宏中,第一次关抢占,目的...
分类:
其他好文 时间:
2014-11-14 12:37:57
阅读次数:
287
操作系统是管理和控制计算机硬件与软件资源的计算机程序,它是一个软件。多任务多任务是操作系统一次运行多个应用程序的能力。多任务有两种形式:协作式多任务和抢占式多任务协作式多任务:处理器同一时间内只能处理一个程序,直到该程序将占用处理器资源释放时(执行完退出),其他运行的程序才可以得到处理器资源。这种多...
分类:
编程语言 时间:
2014-11-10 19:20:53
阅读次数:
188
最近在总结multithread方面的知识。这篇主要介绍线程的取消。 在任务、线程、服务以及应用程序等模块中的生命周期结束问题,可能会增加他们在设计和实现时的复杂性。Java并没有提供某种抢占式的机制来取消操作或者终结线程。相反,它提供了一种协作式的中断机制来实现实现取消操作,但这要依赖于如何构建....
分类:
编程语言 时间:
2014-11-06 17:17:34
阅读次数:
167
一,lua协程简介 协程(coroutine),意思就是协作的例程,最早由Melvin Conway在1963年提出并实现。跟主流程序语言中的线程不一样,线程属于侵入式组件,线程实现的系统称之为抢占式多任务系统,而协程实现的多任务系统成为协作式多任务系统。线程由于缺乏yield语义,所以运行过程中不...
分类:
其他好文 时间:
2014-10-26 22:31:33
阅读次数:
601
14,进程调度:进程调度概念:进程调度程序决定哪个进程投入运行,何时运行以及运行多长时间。linux是抢占式多任务操作系统,linux在2.6.23内核中采用的是“完全公平调度算法”简称CFS进程调度前提:cpu一个处理器在同一时刻只能运行一个进程进程响应快,后台吞吐量大,避免进程饥饿等linux进...
分类:
系统相关 时间:
2014-10-26 09:06:50
阅读次数:
326
Linux内核-进程调度
1.多任务
#抢占式多任务:由调度程序来决定什么时间停止一个进程的运行
#进程的时间片:分配给每个可运行进程的处理器时间段
2.Linux的进程调度
#O(1)调度程序
#反转楼梯最后期限调度算法(RSDL)
#完全公平调度算法(CFS)
3.策略
#I/O消耗型和处理器消耗型进程:
...
分类:
系统相关 时间:
2014-10-24 18:57:28
阅读次数:
196
Java程序员面试题集(51-70)摘要:这一部分主要讲解了异常、多线程、容器和I/O的相关面试题。首先,异常机制提供了一种在不打乱原有业务逻辑的前提下,把程序在运行时可能出现的状况处理掉的优雅的解决方案,同时也是面向对象的解决方案。而Java的线程模型是建立在共享的、默认的可见的可变状态以及抢占式...
分类:
编程语言 时间:
2014-10-11 23:43:37
阅读次数:
319
优先级>1~10
线程调度
OS:
抢占式>更高优先级的线程会取代当前运行的线程
非抢占式>即使存在更高优先的线程,也不会取代当前运行的线程
JVM:
绿色线程:最简单的线程处理模型.对os来说只有一个进程一个线程,因此
jvm必须维护该创建线程的原始信息等..
守护线程/非守护线程:
在创建线程的父线程死亡时,守护线程会自动结束,而非守护线程
则不会.
...
分类:
编程语言 时间:
2014-09-28 12:11:41
阅读次数:
154