-
算法导论习题解答 16-2 (最小平均完成时间)
2020-04-26 17:07:27假定给定任务集合S={a1,a2,⋯ ,an}S=\{a_1,a_2,\cdots,a_n\}S={a1,a2,⋯,an},其中任务aia_iai在启动后需要pip_ipi个时间单位完成。你有一台计算机来运行这些任务,每个时刻只能运行一个任务。令cic_ici...假定给定任务集合,其中任务在启动后需要个时间单位完成。你有一台计算机来运行这些任务,每个时刻只能运行一个任务。令表示任务的完成时间,即任务被执行完的时间。你的目标是最小化平均完成时间,即最小化。例如,假定有两个任务和,,,如果首先运行,然后运行,则,,平均完成时间为。如果先于执行,则,,平均完成时间为。
a. 设计算法,求平均完成时间最小的调度方案。任务的执行都是非抢占的,即一旦开始运行,它就持续运行个时间单位。证明你的算法能最小化平均完成时间,并分析算法的运行时间。
b. 现在假定任务并不是在任意时刻都可以开始执行,每个任务都有一个释放时间,在此时间之后才可以开始。此外假定任务执行是可以抢占的 (preemption),这样任务可以被挂起,稍后再重新开始。例如,一个任务的运行时间为,释放时间为,它可能在时刻1开始运行,在时刻4被抢占。然后在时刻10恢复运行,在时刻11再次被强占,最后在时刻13恢复运行,在时刻15运行完毕。任务共运行了6个时间单位,但运行时间被分割成三个部分。在此情况下,的完成时间为15.设计算法,对此问题求解平均时间最小的调度方案。证明你的算法确实能最小化完成时间,分析算法的运行时间。
Answer:
a. 算法设计如下:按照运行时间从小到大的顺序依次运行每个任务,算法的时间复杂度为排序时间。下证该算法能最小化平均完成时间:
首先假设算法最后得到的任务序列为,取一个最优序列。假设存在一个,使得两个序列的前项相同,第项相同。那么我们能够得到如下推论:
- 用时最短的任务。我们使用来表示算法得到的任务序列的第个任务用时;来表示算法得到的任务序列的第个任务用时;使用来表示算法序列的第个任务的完成时间;使用来表示最优序列的第个任务的完成时间。
- 两种序列的前个任务的完成时间之和相同,设第个任务的完成时间为。那么最优序列的剩余个任务的完成时间之和为:
由于,故存在,不妨交换最优序列中的和。此时最优序列剩余的个任务的完成时间之和为:
有以及,故:
这说明交换后的新序列的平均完成时间小于等于最优序列的平均完成时间,这与最优序列的假设相矛盾,故此处的小于等于只能取等于号,即,此时交换两个任务不会使平均完成时间发生变化,因此该最优序列可以保持最优序列的性质。
- 根据上一条推论,我们可以知道对于任意前项相同的一组算法生成的序列和一组最优序列,都可以通过交换操作在保持最优序列性质的前提下,使得两个序列的第位也相同,直到两个序列完全相同。故该算法能最小化平均完成时间。
b. 采用最短用时优先算法:优先执行当前剩余时间最短的可执行任务。
首先假设算法最后得到的每个时刻所执行的任务的任务序列为,取一个最优序列,此处为所有任务的总用时。假设该最优序列能满足在所有其他的最优序列中拥有一个最大的,使得两个序列的前项不相同,第项相同。那么我们能够得到如下推论:
- 对于指代不同任务的和,由算法定义可知任务的剩余用时小于等于任务的剩余用时。若相等,则将后续序列中所有的和互换,该操作不影响最优序列的性质,并使最优序列的前项与算法提供的序列前项相同,这与最大的假设相矛盾。因此任务的剩余用时必然小于任务的剩余用时。
- 已知算法优先执行当前剩余时间最少的任务,记两个序列当前完成的任务为个,则第个任务的完成时间必然是算法序列的完成时间更小。此处记算法序列第个时刻执行的任务为,记最优序列第个时刻执行的任务为。那么两个任务在第个时刻前各自都还有剩余用时,记的剩余用时为;的剩余用时为,特别地,有。根据上述内容,我们知道在最优序列从第个时刻起的后续的个时刻里,任务还要执行次,而任务还要执行次。
- 我们将最优序列中自第个时刻起的所有执行任务的个时刻记为一个集合,以及所有执行任务的时刻即为一个集合,将两个集合合并记做。则中有个元素,我们使时刻最小的前个时刻在最优序列中都执行任务,剩余的后个时刻在最优序列中执行任务。已知原先任务与任务的完成时间分别为和。同时,两者之和也可以表示为:
那么交换后的新序列中,除了任务与任务,其他任务的完成时间完全不变,而任务的完成时间变为中第大的时刻,记为。而任务的完成时间变为,故交换后的两者之和:
故在其他任务的完成时间都不变的情况下,交换后的这两个任务的完成时间之和变小了,这与原序列为最优序列的假设不相符。故假设不成立,不存在这样的最大使得前项相同,第项不同。即所有项都相同。故该算法能够获取最小平均完成时间。
-
python最小二乘法_Python实现最小二乘法
2020-12-04 15:05:48说的是一个实验容器靠蒸汽供应热量,使其保持恒温,通过一段时间观测,得到下图表中的这样一组数据:蒸汽-环境温度数据其中,自变量X表示容器周围空气单位时间的平均温度(℃),Y表示单位时间内消耗的蒸汽量(L),共...上一篇文章讲了最小二乘算法的原理。这篇文章通过一个简单的例子来看如何通过Python实现最小乘法的线性回归模型的参数估计。
王松桂老师《线性统计模型——线性回归与方差分析》一书中例3.1.3。
说的是一个实验容器靠蒸汽供应热量,使其保持恒温,通过一段时间观测,得到下图表中的这样一组数据:
蒸汽-环境温度数据其中,自变量X表示容器周围空气单位时间的平均温度(℃),Y表示单位时间内消耗的蒸汽量(L),共观测了25个单位时间(表中序号一列)。
那么,我们要怎样对这组数据进行线性回归分析呢?一般分三步:(1)画散点图,找模型;(2)进行回归模型的参数估计;(3)检验前面分析得到的经验模型是否合适。
画散点图
创建一个DataTemp的文件夹,在其中分别创建"data"、"demo"文件夹用于存放数据文件、Python程序文件。
把前面图中的数据导入Excel中,命名为:“蒸汽供应.xlsx”,用来作为数据源。
数据导入Excel后创建Python文件:”leastsquare.py“。在文件头加入utf-8编码的说明以支持中文字符,然后添加必要的注释。
# -*- coding: utf-8 -*-"""Created on Fri Mar 20 14:07:41 2020@author: gao"""import必要的第三方库。
"""第三方库"""importpandasaspdimportmatplotlib.pyplotaspltfromscipy.optimizeimportleastsqimportnumpyasnp使用下面的代码将Excel数据读入Python Pandas DataFrame中。
"""把excel中的数据读入datafram"""filePath=u'../data/蒸汽供应.xlsx'#含中文字符,前面加u表示用Unicode 格式进行编码data=pd.read_excel(filePath,index_col=u'序号')提取其中的Y、X列并绘制散点图
Xi=data[u'X']Yi=data[u'Y']"""画散点图"""plt.figure()plt.scatter(Xi,Yi,color='red',label='sample data',linewidth=2)plt.legend(loc='lower right')plt.show()散点图结果如下:
散点图从图中看出大致服从一个线性分布,所以我们采用一元线性回归模型来进行分析。
回归模型的参数估计
一元线性模型的一般公式为
一元线性回归模型我们使用最小二乘法估算出α、β即可求出经验回归方程。
经验模型Python中对一元线性模型的参数进行参数估计是很简单的,如下代码所示:
deffun(p,x):#回归模型函数k,b=preturnk*x+bdeferror(p,x,y):#误差returnfun(p,x)-yp0=np.array([1,3])para=leastsq(error,p0,args=(Xi,Yi))k,b=para[0]上面代码的关键之处有三点:
(1)定义模型函数、误差函数。其中误差函数error,实际上就是我们模型的估计值与实际的观察值之差,我们就是通过这个差值的最小二乘来对模型中的参数进行估计的。也就是说,前面的经验模型的参数取不同的值,那对于xi可以求出不同的yi,这个yi是我们估计值和实际的观测值进行求差就是估计误差,参数取值不同估计误差不同,我们要找到一组参数使得对于所有的观测值的误差的平方和最小。
(2)调用scipy的leastsq函数时,需要有误差函数、初始参数作为输入,还需要把我们读到的观测数据作为参数传入leastsq函数,这是此函数的三个关键的输入参数。
(3)leastsq的返回参数是多个,所以放到一个元组(tuple)中,返回tuple类型para的第一个元素para[0]是一个nupy.ndarray类型,存放的即是满足最小二乘规则的估计参数。
经验模型的效果
可以使用下面的代码打印经过最小二乘运算后的经验模型。
"""打印结果"""print('y='+str(round(k,2))+'x+'+str(round(b,2)))最后一步工作就是把我们的经验模型的线画到前面的散点图上,看一下模型的效果。
"""绘制结果曲线"""x=np.linspace(20,80,2)y=k*x+b"""画散点图"""plt.figure()plt.scatter(Xi,Yi,color='red',label='sample data',linewidth=2)plt.plot(x,y,color='blue',label='result line')plt.legend(loc='lower right')plt.show()绘出的结果图像如下:
模型结果曲线当然,我们还可以通过判定系数来看一下我们的回归方程与数据拟合的效果好坏,这个在后续的文章中再说。
-
# 最小二乘法 模型_Python实现最小二乘法
2021-01-15 16:13:08说的是一个实验容器靠蒸汽供应热量,使其保持恒温,通过一段时间观测,得到下图表中的这样一组数据:蒸汽-环境温度数据其中,自变量X表示容器周围空气单位时间的平均温度(℃),Y表示单位时间内消耗的蒸汽量(L...上一篇文章讲了最小二乘算法的原理。这篇文章通过一个简单的例子来看如何通过Python实现最小乘法的线性回归模型的参数估计。
王松桂老师《线性统计模型——线性回归与方差分析》一书中例3.1.3。
说的是一个实验容器靠蒸汽供应热量,使其保持恒温,通过一段时间观测,得到下图表中的这样一组数据:
蒸汽-环境温度数据 其中,自变量X表示容器周围空气单位时间的平均温度(℃),Y表示单位时间内消耗的蒸汽量(L),共观测了25个单位时间(表中序号一列)。
那么,我们要怎样对这组数据进行线性回归分析呢?一般分三步:(1)画散点图,找模型;(2)进行回归模型的参数估计;(3)检验前面分析得到的经验模型是否合适。
画散点图
创建一个DataTemp的文件夹,在其中分别创建"data"、"demo"文件夹用于存放数据文件、Python程序文件。
把前面图中的数据导入Excel中,命名为:“蒸汽供应.xlsx”,用来作为数据源。
数据导入Excel后 创建Python文件:”leastsquare.py“。在文件头加入utf-8编码的说明以支持中文字符,然后添加必要的注释。
# -*- coding: utf-8 -*-
"""Created on Fri Mar 20 14:07:41 2020@author: gao"""import必要的第三方库。
"""第三方库"""
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
import numpy as np使用下面的代码将Excel数据读入Python Pandas DataFrame中。
"""把excel中的数据读入datafram"""
filePath = u'../data/蒸汽供应.xlsx' #含中文字符,前面加u表示用Unicode 格式进行编码
data = pd.read_excel(filePath, index_col=u'序号')提取其中的Y、X列并绘制散点图
Xi = data[u'X']
Yi = data[u'Y']
"""画散点图"""
plt.figure()
plt.scatter(Xi, Yi, color='red', label='sample data',linewidth=2)
plt.legend(loc='lower right')
plt.show()散点图结果如下:
散点图 从图中看出大致服从一个线性分布,所以我们采用一元线性回归模型来进行分析。
回归模型的参数估计
一元线性模型的一般公式为
一元线性回归模型 我们使用最小二乘法估算出α、β即可求出经验回归方程。
经验模型 Python中对一元线性模型的参数进行参数估计是很简单的,如下代码所示:
def fun(p,x): #回归模型函数
k,b = p
return k*x+b
def error(p,x,y): #误差
return fun(p,x)-y
p0 = np.array([1,3])
para = leastsq(error,p0,args=(Xi,Yi))
k,b = para[0]上面代码的关键之处有三点:
(1)定义模型函数、误差函数。其中误差函数error,实际上就是我们模型的估计值与实际的观察值之差,我们就是通过这个差值的最小二乘来对模型中的参数进行估计的。也就是说,前面的经验模型的参数取不同的值,那对于xi可以求出不同的yi,这个yi是我们估计值和实际的观测值进行求差就是估计误差,参数取值不同估计误差不同,我们要找到一组参数使得对于所有的观测值的误差的平方和最小。
(2)调用scipy的leastsq函数时,需要有误差函数、初始参数作为输入,还需要把我们读到的观测数据作为参数传入leastsq函数,这是此函数的三个关键的输入参数。
(3)leastsq的返回参数是多个,所以放到一个元组(tuple)中,返回tuple类型para的第一个元素para[0]是一个nupy.ndarray类型,存放的即是满足最小二乘规则的估计参数。
经验模型的效果
可以使用下面的代码打印经过最小二乘运算后的经验模型。
"""打印结果"""
print('y='+str(round(k,2)) + 'x+' +str(round(b,2)))最后一步工作就是把我们的经验模型的线画到前面的散点图上,看一下模型的效果。
"""绘制结果曲线"""
x=np.linspace(20,80,2)
y=k*x+b
"""画散点图"""
plt.figure()
plt.scatter(Xi, Yi, color='red', label='sample data',linewidth=2)
plt.plot(x,y,color='blue',label='result line')
plt.legend(loc='lower right')
plt.show()绘出的结果图像如下:
模型结果曲线 当然,我们还可以通过判定系数来看一下我们的回归方程与数据拟合的效果好坏,这个在后续的文章中再说。
-
python加权最小二乘_用Python实现最小二乘算法
2020-12-03 17:51:18说的是一个实验容器靠蒸汽供应热量,使其保持恒温,通过一段时间观测,得到下图表中的这样一组数据:蒸汽-环境温度数据其中,自变量X表示容器周围空气单位时间的平均温度(℃),Y表示单位时间内消耗的蒸汽量(L),共...上一篇文章讲了最小二乘算法的原理。这篇文章通过一个简单的例子来看如何通过Python实现最小乘法的线性回归模型的参数估计。
王松桂老师《线性统计模型——线性回归与方差分析》一书中例3.1.3。
说的是一个实验容器靠蒸汽供应热量,使其保持恒温,通过一段时间观测,得到下图表中的这样一组数据:
蒸汽-环境温度数据
其中,自变量X表示容器周围空气单位时间的平均温度(℃),Y表示单位时间内消耗的蒸汽量(L),共观测了25个单位时间(表中序号一列)。
那么,我们要怎样对这组数据进行线性回归分析呢?一般分三步:(1)画散点图,找模型;(2)进行回归模型的参数估计;(3)检验前面分析得到的经验模型是否合适。
画散点图
创建一个DataTemp的文件夹,在其中分别创建"data"、"demo"文件夹用于存放数据文件、Python程序文件。
把前面图中的数据导入Excel中,命名为:“蒸汽供应.xlsx”,用来作为数据源。
数据导入Excel后
创建Python文件:”leastsquare.py“。在文件头加入utf-8编码的说明以支持中文字符,然后添加必要的注释。
# -*- coding: utf-8 -*-
"""Created on Fri Mar 20 14:07:41 2020@author: gao"""
import必要的第三方库。
"""第三方库"""
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
import numpy as np
使用下面的代码将Excel数据读入Python Pandas DataFrame中。
"""把excel中的数据读入datafram"""
filePath = u'../data/蒸汽供应.xlsx' #含中文字符,前面加u表示用Unicode 格式进行编码
data = pd.read_excel(filePath, index_col=u'序号')
提取其中的Y、X列并绘制散点图
Xi = data[u'X']
Yi = data[u'Y']
"""画散点图"""
plt.figure()
plt.scatter(Xi, Yi, color='red', label='sample data',linewidth=2)
plt.legend(loc='lower right')
plt.show()
散点图结果如下:
散点图
从图中看出大致服从一个线性分布,所以我们采用一元线性回归模型来进行分析。
回归模型的参数估计
一元线性模型的一般公式为
一元线性回归模型
我们使用最小二乘法估算出α、β即可求出经验回归方程。
经验模型
Python中对一元线性模型的参数进行参数估计是很简单的,如下代码所示:
def fun(p,x): #回归模型函数
k,b = p
return k*x+b
def error(p,x,y): #误差
return fun(p,x)-y
p0 = np.array([1,3])
para = leastsq(error,p0,args=(Xi,Yi))
k,b = para[0]
上面代码的关键之处有三点:
(1)定义模型函数、误差函数。其中误差函数error,实际上就是我们模型的估计值与实际的观察值之差,我们就是通过这个差值的最小二乘来对模型中的参数进行估计的。也就是说,前面的经验模型的参数取不同的值,那对于xi可以求出不同的yi,这个yi是我们估计值和实际的观测值进行求差就是估计误差,参数取值不同估计误差不同,我们要找到一组参数使得对于所有的观测值的误差的平方和最小。
(2)调用scipy的leastsq函数时,需要有误差函数、初始参数作为输入,还需要把我们读到的观测数据作为参数传入leastsq函数,这是此函数的三个关键的输入参数。
(3)leastsq的返回参数是多个,所以放到一个元组(tuple)中,返回tuple类型para的第一个元素para[0]是一个nupy.ndarray类型,存放的即是满足最小二乘规则的估计参数。
经验模型的效果
可以使用下面的代码打印经过最小二乘运算后的经验模型。
"""打印结果"""
print('y='+str(round(k,2)) + 'x+' +str(round(b,2)))
最后一步工作就是把我们的经验模型的线画到前面的散点图上,看一下模型的效果。
"""绘制结果曲线"""
x=np.linspace(20,80,2)
y=k*x+b
"""画散点图"""
plt.figure()
plt.scatter(Xi, Yi, color='red', label='sample data',linewidth=2)
plt.plot(x,y,color='blue',label='result line')
plt.legend(loc='lower right')
plt.show()
绘出的结果图像如下:
模型结果曲线
当然,我们还可以通过判定系数来看一下我们的回归方程与数据拟合的效果好坏,这个在后续的文章中再说。
-
c4.5算法python实现_用Python实现最小二乘算法
2020-11-19 23:54:15说的是一个实验容器靠蒸汽供应热量,使其保持恒温,通过一段时间观测,得到下图表中的这样一组数据:蒸汽-环境温度数据其中,自变量X表示容器周围空气单位时间的平均温度(℃),Y表示单位时间内消耗的蒸汽量(L),... -
python一元三次方程拟合_用Python实现最小二乘算法
2020-12-31 01:11:22说的是一个实验容器靠蒸汽供应热量,使其保持恒温,通过一段时间观测,得到下图表中的这样一组数据:蒸汽-环境温度数据其中,自变量X表示容器周围空气单位时间的平均温度(℃),Y表示单位时间内消耗的蒸汽量(L),... -
PHP中使用微秒计算脚本执行时间例子
2020-12-03 20:30:58在PHP中,大多数的时间格式都是以UNIX时间戳表示的,而UNIX时间戳是以s(秒)为最小的计量时间的单位。这对某些应用程序来说不够精确,所以可以调用microtime()返回当前UNIX时间戳和微妙数。该函数的原型如下: 代码... -
浏览器和浏览器的事件循环
2018-07-09 11:53:41我们可以用浏览器打开很多的网页,关闭其中的任何一个对于其他的网页没有影响,这个大家都明白,因为浏览器是多进程的。说到进程,不得不提到的还有线程,关于他们俩个的区别: 进程是cpu分配资源的最小单位; ... -
多线程:线程之间的共享和协作(一)
2020-04-14 12:47:441.1什么是进程:进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、 磁盘 IO 等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程 之间是相互独立的。 1.2什么是线程:线程是 CPU ... -
“大”与“小”的区别
2017-11-25 16:40:00在计算机网络中,信息传输速度一般表示为Mbps,Kbps,意思是Mb/秒和Kb/秒。其中的小写b是计算机中所能表示的最小单位bit的缩写。...所以在网络传输中,下载一个文件所需时间会与我们所期望的时间有区别... -
走进Java里的线程世界
2019-07-28 17:14:40进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘IO等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。进程是具有一定独立功能的程序关于某... -
python 15 自定义模块 随机数 时间模块
2019-05-17 18:48:00什么是模块:本质就是.py文件,封装语句的最小单位。 自定义模块:实际上就是定义.py,其中可以包含:变量定义,可执行语句,for循环,函数定义等等,他们统称模块的成员。 模块的运行方式: 脚本方式:直接用解释器... -
Java线程基础、线程之间的共享和协作(一)
2020-05-21 11:14:58进程是操作系统进行资源分配的最小单位,其中包括:CPU,内存空间、磁盘IO等,同一进程中的多条线程共享改进程中的全部系统资源,而进程和进程之间是相互独立的。 进程是具有一定独立功能的程序关于某个数据集合上的... -
线程基础以及线程之间的共享与协作一>
2020-09-08 23:29:50线程基础以及线程之间的共享与协作基础概念什么是进程和线程CPU核心数和线程数的关系CPU时间片轮转机制理解并行和并发高并发编程的意义和好处多线程程序注意事项认识Java里的线程Java程序天生就是多线程的线程的启动... -
java中的创建线程方式
2020-03-23 00:25:19进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘 IO 等。同一进程中的多条线程共享该进程中的全部系统资源。而一个进程就是由一个或者多个线程组成的。线程就是 CPU 调度的最小单位。 多... -
zookeeper的详细介绍
2019-12-07 21:04:33zk的配置介绍 我们打开上一章安装时介绍的conf目录下的zoo.cfg文件,我们可以看到有几项显而易见的配置项:tickTime、...tickTime:是zk用于计算时的最小时间单位,单位为毫秒,tickTime=2000,表示... -
multiprocessing python_面向数据科学的Python多进程简介及应用
2020-11-14 02:38:44也是操作系统可以控制的最小单位,在数据科学中很多涉及大量计算、CPU密集型的任务都可以通过多进程并行运算的方式大幅度提升运算效率从而节省时间开销,而在Python中实现多进程有多种方式,本文就将针对其中较为... -
java调度问题的贪心算法_任务调度问题1—贪心算法
2020-12-19 10:58:37这个问题是《算法导论》上的一个经典的贪心算法问题——单处理器上具有期限和惩罚的单位时间任务调度问题,目标是使惩罚最小。输入:第一行一个数n,接下来第2行到第n+1行,第i行分别是d[i]和w[i],其中d[i]表示第i... -
比特的认识和原码,反码,补码的学习
2020-06-24 19:12:40bit为最小的数据计量单位 即1bit仅能是一个二进制的数字1或者0 byte是比bit更大的数据单位 1byte=8bit 计算机有32位和64位之分,其中64表示计算机可以在同一时间计算64个比特位的数据 原码,反码,补码的概念和... -
进程与线程的区别
2016-10-31 22:44:143.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。 4.每个进程都是一个独立的运行单位,拥有各自的权利和责任。其中,各个进程都运行在独立的虚拟地址空间, -
认识Java中的线程
2018-08-18 18:22:51前言:最近在看Java中的并发,做了笔记,但是还是觉得记录一下比较好。加深理解,这个模块可能有很多篇...进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘IO等,同一进程中的多条线程共... -
线程与进程的区别
2016-10-29 18:45:263.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。 4.每个进程都是一个独立的运行单位,拥有各自的权利和责任。其中,各个进程都运行在独立的虚拟地址空间,因此,即使一个进程... -
线程的调度和创建
2018-05-05 11:45:50进程——应用程序的执行实例线程——进程中执行运算的最小单位多线程——一个进程中使用多个线程来完成不同的工作,多线程是交替占用内存资源的,而并非是并行执行内存将运行空间划分为若干份时间片,每个线程可占用... -
java线程的创建_创建多线程的4种方式
2021-02-12 12:36:54线程被称为轻量级进程,是程序执行的最小单位,它是指在程序执行过程中,能够执行代码的一个执行单位。每个程序程序都至少有一个线程,也即是程序本身。2.线程状态Java语言定义了5种线程状态,在任意一个时间点,一... -
线程的创建方式
2020-09-01 18:34:05其实Thread类实质也是实现了Runnable接口重写了其中的Run方法(该线程的代码区域)main方法就是一个线程,线程是组成进程的最小单位,当你启动一个Java程序(进程),该程序就是你当前使用的IDE的一个线程,在main... -
拓展游戏:海盗的难题.doc
2020-12-27 09:34:49这是一些讲民主的海盗(当然是他们自己特有的民主),他们的习惯是按下面的方式进行分配:最厉害的一名海盗提出了分配方案,但分配的最小单位是1块金子,然后所有的海盗(包括提出方案者本人)就此方案进行表决。... -
进程、轻量级进程和线程的一些点
2012-01-09 15:57:30进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。 最初的进程定义都包含程序、资源及其执行三...