为您找到与Java多线程模型相关的共81个结果:
Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。在此之前,主流程序怨言(如C/C++等)直接使用物理硬件(或者说操作系统的内存模型),因此,会由于不同的平台上内存模型差异,导致程序在一套平台上并发完成正常,而在另一套平台上并发访问却经常出错,因此经常需要针对不同的平台来编写程序。
Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。
Java内存模型规定了所有变量都存储在主内存中,每条线程都有自己的工作内存,线程的工作内存保存了被该线程使用到变量的主内存副本拷贝,线程对变量的所有操作(读取,赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同线程也不能直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成,线程,主内存,工作内存三者的交互关系。
ava中通过多线程使得多个任务同时执行处理,所有的线程共享JVM内存区域main memory,而每个线程又有自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交由线程处理。
Java虚拟机内存模型中定义的访问操作与物理计算机处理的基本一致。
1、程序计数器(Program Counter Register)
程序计数器是一块较小的内存空间,其存放的是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。
由于Java 虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。
如果线程正在执行的是一个Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Natvie 方法,这个计数器值则为空(Undefined)。此内存区域是唯一一个在Java 虚拟机规范中没有规定任何OutOfMemoryError 情况的区域。
2、Java虚拟机栈(Java Virtual Machine Stacks)
与程序计数器一样,Java虚拟机栈也是线程私有的,其生命周期与线程相同。
虚拟机栈描述的是Java 方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame ①)用于存储局部变量表、操作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
经常有人把Java 内存区分为堆内存(Heap)和栈内存(Stack),这种分法比较粗糙,Java 内存区域的划分实际上远比这复杂。这种划分方式的流行只能说明大多数程序员最关注的、与对象内存分配关系最密切的内存区域是这两块。其中所指的“堆”在后面会专门讲述,而所指的“栈”就是现在讲的虚拟机栈,或者说是虚拟机栈中的局部变量表部分。
局部变量表存放了编译期可知的各种基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference 类型,它不等同于对象本身,根据不同的虚拟机实现,它可能是一个指向对象起始地址的引用指针,也可能指向一个代表对象的句柄或者其他与此对象相关的位置)和returnAddress 类型(指向了一条字节码指令的地址)。其中64 位长度的long 和double 类型的数据会占用2 个局部变量空间(Slot),其余的数据类型只占用1 个。局部变量表所需的内存空间在编译期间完成分配,当进入一个方法时,这个方法需要在帧中分配多大的局部变量空间是完全确定的,在方法运行期间不会改变局部变量表的大小。
抛出异常:如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常;如果虚拟机栈可以动态扩展(当前大部分的Java 虚拟机都可动态扩展,只不过Java 虚拟机规范中也允许固定长度的虚拟机栈),当扩展时无法申请到足够的内存时会抛出OutOfMemoryError 异常。
3、本地方法栈(Native Method Stacks)
本地方法栈与虚拟机栈的作用非常相似,虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用的Native方法服务的。
虚拟机规范中对本地方法栈中的方法使用的语言、使用方式与数据结构并没有强制规定,因此具体的虚拟机可以自由实现它。甚至有的虚拟机(譬如Sun HotSpot 虚拟机)直接就把本地方法栈和虚拟机栈合二为一。与虚拟机栈一样,本地方法栈区域也会抛出StackOverflowError 和OutOfMemoryError异常。
4、Java堆(Java Heap)
对于大多数应用来说,Java 堆是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。
Java堆中唯一的目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。
这一点在Java 虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配①,但是随着JIT 编译器的发展与逃逸分析技术的逐渐成熟,栈上分配、标量替换②优化技术将会导致一些微妙的变化发生,所有的对象都分配在堆上也渐渐变得不是那么“绝对”了。
Java堆是垃圾收集器管理的主要区域,因此很多时候也被称作“GC堆”(Garbage Collected Heap)。
根据Java 虚拟机规范的规定,Java 堆可以处于物理上不连续的内存空间中,只要逻辑上是连续的即可,就像我们的磁盘空间一样。在实现时,既可以实现成固定大小的,也可以是可扩展的,不过当前主流的虚拟机都是按照可扩展来实现的(通过-Xmx和-Xms 控制)。如果在堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemoryError 异常。
4、方法区(Method Area)——又名Non-Heap
方法区与Java堆一样,是各个线程共享的内存区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然Java 虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是与Java 堆区分开来。
根据Java 虚拟机规范的规定, 当方法区无法满足内存分配需求时, 将抛出OutOfMemoryError 异常。
5、运行时常量池(Runtime Constant Pool)
运行时常量池是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编译期生成的各种字面量和符号引用,这部分内容在类加载后存放到方法区的运行时常量池中。
6、直接内存(Direct Memory)
直接内存并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,但是这部分内存也被频繁地使用,而且也可能导致OutOfMemoryError 异常出现。应用在某些场景中能显著提高性能,因为其避免了在Java堆和Native堆中来回复制数据。
浏览量:2
下载量:0
时间:
中央处理器(CentralProcessingUnit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和控制核心。下面是读文网小编带来的关于java和多线程cpu的内容,欢迎阅读!
前端总线的速度指的是CPU和北桥芯片间总线的速度,更实质性的表示了CPU和外界数据传输的速度。而外频的概念是建立在数字脉冲信号震荡速度基础之上的,也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一万万次,它更多的影响了PCI及其他总线的频率。之所以前端总线与外频这两个概念容易混淆,主要的原因是在以前的很长一段时间里(主要是在Pentium 4出现之前和刚出现Pentium 4时),前端总线频率与外频是相同的,因此往往直接称前端总线为外频,最终造成这样的误会。随着计算机技术的发展,人们发现前端总线频率需要高于外频,因此采用了QDR(Quad Date Rate)技术,或者其他类似的技术实现这个目的。
这些技术的原理类似于AGP的2X或者4X,它们使得前端总线的频率成为外频的2倍、4倍甚至更高,从此之后前端总线和外频的区别才开始被人们重视起来。FSB是将CPU连接到北桥芯片的总线,也是CPU和外界交换数据的主要通道,因此前端总线的数据传输能力对整机性能影响很大,数据传输最大带宽取决于所有同时传输数据的宽度和传输频率,即数据带宽=总线频率×数据位宽÷8。例如Intel公司的PⅡ333使用6 6MHz的前端总线,所以它与内存之间的数据交换带宽为528MB/s =(66×64)/8,而其PⅡ350则使用100MHz的前端总线,所以其数据交换峰值带宽为800MB/s=(100×64)/8。再比如Intel 845芯片组只支持单通道DDR333内存,所以理论最高内存带宽为333MHz×8Bytes(数据宽度)=2.7GB/s,而Intel 875平台在双通道下的内存带宽最高可达400MHz×8Bytes(数据宽度)×2=6.4GB/s。PC机常用的前端总线频率有266MHz、333MHz、400MHz、533MHz、800MHz、1066MHz几种。
浏览量:2
下载量:0
时间:
cad2007把布局复制到模型的是怎样操作的呢?下面读文网小编告诉大家cad2007把布局复制到模型的教程,一起来学习吧。
首先打开要转换的CAD文件
打开后,平面中有以下两个标示,一个是模型,一个是布局文件
将箭头放置布局文件上,点击鼠标右键,选择将布局输出到模型
选择要保存到的目录
保存完成后,文件提示是否现在打开,这个根据个人需要,此处选择打开
打开后可以选择一处内容查看,测量尺寸,由于导出后的文件一般比较小,因此需要根据测量的尺寸进行缩放
由于缩放后的图纸标注文件偏小并且数据不对,因此需要大家自己进行修改
看了“cad2007把布局复制到模型的教程”
浏览量:62
下载量:0
时间:
cad布局的图怎么拖到模型里来呢?下面读文网小编告诉大家cad布局的图怎么拖到模型里来,一起来学习吧。
首先打开要转换的CAD文件
打开后,平面中有以下两个标示,一个是模型,一个是布局文件
将箭头放置布局文件上,点击鼠标右键,选择将布局输出到模型
选择要保存到的目录
保存完成后,文件提示是否现在打开,这个根据个人需要,此处选择打开
打开后可以选择一处内容查看,测量尺寸,由于导出后的文件一般比较小,因此需要根据测量的尺寸进行缩放
由于缩放后的图纸标注文件偏小并且数据不对,因此需要大家自己进行修改
看了“cad布局的图怎么拖到模型里来”
浏览量:2
下载量:0
时间:
在CAD中我们知道有两种画图空间,模型和布局。下面读文网小编告诉大家cad模型转换布局教程,一起来学习吧。
1、进入布局界面
2、有个小白框里有整个模型里图形的缩影,你要在布局里重新插入图框,根据你需要出图的比例确定图框大小。
3、点定义视口命令(菜单里有),自动进入模型空间,然后框选你要出图的部分,然后确定,自动回到布局页面,这时生成了一个图形的区域,根据你要出图的比例比例(1:100就输100)确认,把确认的比例的视口框移动到你的图框你。
4、重复上面的步骤把模型里的图全定义过来就好了,有时不能确定要多大的图,可以先定义视口,再插入图框。
看了“cad模型转换布局教程”
浏览量:3
下载量:0
时间:
cad软件作图空间有模型和布局,这两种作图空间有时候会互相转换图形使用。下面读文网小编告诉大家cad模型和布局怎么互相转换,一起来学习吧。
打开CAD2014程序,在模型空间中制作好图纸,在下面可以看到是处于模型选项卡
现在我们用左键点右侧的布局1选项卡 ,出现了布局1的图纸空间,内部实线边框是单个布局视口,显示的是模型空间的视图
切换时,可以直接点模型选项卡,就回到了模型空间
或者在布局选项卡,在选项卡上点击鼠标右键,然后点激活模型选项卡,也可以回到模型空间
>>>点击下一页继续查看第二种“cad模型和布局互相转换”的方法#p#副标题#e#
在模型空间里,把鼠标悬浮在图标模型上时,弹出工具提示是模型或图纸空间,点击后,会切换进入图纸空间,同样,在布局窗口中,点同样位置会进入模型空间
在图纸空间选中模型布局视口,可以用鼠标移动位置
在图纸空间单击实心框,在四个顶点会出现蓝块,用鼠标点住其中的蓝块会随着鼠标移动方向拉伸
在图纸空间,调整模型空间的视图边框后,变成了如下图纸,打印出来的效果也是这个图纸
浏览量:59
下载量:0
时间:
Win7系统运行java时出现提示应用程序已安全设置被阻止,这样就导致运行java失败,那么怎样解决运行java提示应用程序已安全设置被阻止呢?下面跟着读文网小编来一起了解下吧。
1、点击:开始-控制面板,选择查看方式为:大图标或小图标;
2、双击java,选择“安全”,把“安全级别”降至“中”,点击“确定”;
3、重启浏览器,运行java,在弹出的对话框中,点击“运行”即可;
4、如果不能完成上述操作,提示需要提升权限,请参阅:怎样才能删除Win7多余的开机启动项中的5、提升权限
如果不能提升权限;
5、切换用户,如:xym原来是普通用户,要提升到管理员,不能在xym的用户下提升,只能切换到管理员的用户下,如:只能在lenovo的用户下进行提升;
6、点击用户xym,选择“管理员”,点击:“更改帐户类型”;
7、打开您用的浏览器,“工具- Internet选项”,进行IE设置:Internet选项-->高级 ,在“允许活动内容在我的计算机上的文件中运行”前打上勾,Internet选项-->程序-->管理加载项,找到“Java(tm)Plug……”,勾选“启用”;
8、如果不想出现“为了有利于保护安全性,Internet 已限制网页运行可以访问计算机的脚本……”;
9、需要在安全选项-->自定义级别-->Activex控件和插件,勾选“启用”;
10、最后点击“确定”、“确定”、“确定”。
关于Win7系统运行java提示“应用程序已安全设置被阻止”的解决方法就介绍完了,按照以上方法设置之后,java就可以正常运行了。
看过“怎样解决运行java提示应用程序已安全设置被阻止”
浏览量:4
下载量:0
时间:
我们知道CAD中的模型和布局可以互相转换。下面读文网小编告诉大家cad布局怎么弄成模型,一起来学习吧。
首先打开要转换的CAD文件
打开后,平面中有以下两个标示,一个是模型,一个是布局文件
将箭头放置布局文件上,点击鼠标右键,选择将布局输出到模型
选择要保存到的目录
保存完成后,文件提示是否现在打开,这个根据个人需要,此处选择打开
打开后可以选择一处内容查看,测量尺寸,由于导出后的文件一般比较小,因此需要根据测量的尺寸进行缩放
由于缩放后的图纸标注文件偏小并且数据不对,因此需要大家自己进行修改
看了“cad布局怎么弄成模型”
浏览量:36
下载量:0
时间:
如果在浏览器中 禁用了javascript,那么就会导致网页显示不正常,放多视频或者带有弹出窗口的网页就会显示不出来,今天读文网小编给大家介绍下如何解决Win7禁用了javascript吧。
1、首先打开ie浏览器,然后点击上面的菜单栏中的工具,然后再点击internet选项;
2、在浏览器选项中,默认是在常规的选项卡中,我们点击安全选项卡;
3、在安全选项卡中,最下面有一个该区域的安全级别这样一个选项,下面有一个自定义的级别,通常如果这里被更改,就会在上面显示一个自定义;
4、点击自定义级别之后,向下拉动这个滑块,然后找到java小程序脚本选项,如果已禁用,就会在禁用前选定。启用这个选项,然后点击确定退出。
5、然后会跳出一个警告提示,你可以不用管它,直接点击是按钮退出这个设置。然后点击确定,java的更改就已经被我们还原了。
关于Win7浏览器禁用javascript后网页无法正常显示的解决方法就介绍完了,在通过上面的操作后,你再打开需要java小脚本支持的网页时就会发现网页打开已经畅通无阻了。
看过“如何解决Win7禁用了javascript”
浏览量:4
下载量:0
时间:
cad怎么把布局拉到模型中,下面读文网小编告诉大家cad怎么把布局拉到模型中,一起来学习吧。
打开CAD2014程序,在模型空间中制作好图纸,在下面可以看到是处于模型选项卡
现在我们用左键点右侧的布局1选项卡 ,出现了布局1的图纸空间,内部实线边框是单个布局视口,显示的是模型空间的视图
切换时,可以直接点模型选项卡,就回到了模型空间
或者在布局选项卡,在选项卡上点击鼠标右键,然后点激活模型选项卡,也可以回到模型空间
在模型空间里,把鼠标悬浮在图标模型上时,弹出工具提示是模型或图纸空间,点击后,会切换进入图纸空间,同样,在布局窗口中,点同样位置会进入模型空间
在图纸空间选中模型布局视口,可以用鼠标移动位置
在图纸空间单击实心框,在四个顶点会出现蓝块,用鼠标点住其中的蓝块会随着鼠标移动方向拉伸
在图纸空间,调整模型空间的视图边框后,变成了如下图纸,打印出来的效果也是这个图纸
看了“cad怎么把布局拉到模型中”
浏览量:15
下载量:0
时间:
用户在Win7系统中浏览网页时,却出现无法正常显示、无法打开网页的问题,对于这样的问题,其实很多时候是因为浏览器禁用了javascript导致,下面跟着读文网小编来一起了解下浏览器禁用javascript后网页无法正常显示应该怎么办吧。
首先打开ie浏览器,然后点击上面的菜单栏中的工具,然后再点击internet选项。如图。
在浏览器选项中,默认是在常规的选项卡中,我们点击安全选项卡,如图所示。
在安全选项卡中,最下面有一个该区域的安全级别这样一个选项,下面有一个自定义的级别,通常如果这里被更改,就会在上面显示一个自定义。
点击自定义级别之后,来到这些具体的设置选项中, 我们可以向下拉动这个滑块,然后找到java小程序脚本这个选项,如果已禁用,就会在禁用前选定。
我们要启用这个选项,就选定启用选项,如图,然后点击确定退出。
然后会跳出一个警告提示,你可以不用管它,直接点击是按钮退出这个设置。
最好,点击确定按钮,这个java的更改就已经被我们还原了,现在你再打开需要java小脚本支持的网页,应该就会正常了。
浏览量:3
下载量:0
时间:
cad怎么把模型图切换到布局呢?下面读文网小编告诉大家cad怎么把模型图切换到布局,一起来学习吧。
1、进入布局界面
2、有个小白框里有整个模型里图形的缩影,你要在布局里重新插入图框,根据你需要出图的比例确定图框大小。
3、点定义视口命令(菜单里有),自动进入模型空间,然后框选你要出图的部分,然后确定,自动回到布局页面,这时生成了一个图形的区域,根据你要出图的比例比例(1:100就输100)确认,把确认的比例的视口框移动到你的图框你。
4、重复上面的步骤把模型里的图全定义过来就好了,有时不能确定要多大的图,可以先定义视口,再插入图框。
看了“cad怎么把模型图切换到布局”
浏览量:2
下载量:0
时间:
CAD中的布局和模型是可以互相转换导入的,那么大家知道cad怎么将模型放到布局吗?下面是读文网小编整理的cad怎么将模型放到布局的方法,希望能给大家解答。
第一步:先点击模型
第二步:双击模型中间空白处
第三步:转动鼠标中间滚轮将图移至合适位置
第四步:双击模型外部空白处就完成了
看了“cad怎么将模型放到布局”
浏览量:21
下载量:0
时间:
在CAD中作图空间分布局和模型,那么大家知道cad怎么调模型比例吗?下面是读文网小编整理的cad怎么调模型比例的方法,希望能给大家解答。
在模型中1:1画图
标注时为注释性对象勾选注释性,并添加所需的比例(随时可以添加)
为了随时可以添加注释比例,推荐快速选择
右键菜单中倒数第X项,全部选中标注后,ctrl+1在特性窗口中开启注释性,并添加注释比例。
切换至布局,将所需图框复制过来
Mv命令,新建视口。将视口贴近图框边界,注意不要完全重合,以便以后点选,图中选中部分即为视口。
选中视口,ctrl+1弹出特性窗口,找到注释比例项
先选择注释比例,标准比例会自动修改至一致。如果你是1:1的图框那就没什么问题,如果图框有放大,就要相应更改比例。方法是首先将注释比例调到出图比例,然后图框放大多少倍,就在注释比例左边乘上多少,相应的在标准比例右边乘上多少。所以图框当然是1:1的省事了。
默认的比例不够用的话,用scalelistedit命令添加新的注释比例,注意注释比例不要太多,不然文件会很大,够用就行。
看了“cad怎么调模型比例”
浏览量:27
下载量:0
时间:
把cad导入su以后怎么建模型呢?下面读文网小编告诉大家把cad导入su以后怎么建模型,一起来学习吧。
打开su,然后找到文件——导入,如图所示
找到我们需要导入图形所在的位置,选择cad类型,如果类型选择的不对,我们会找不到我们要导入的图形的,如图所示
之后点击图形,打开,如图所示
cad导入时,根据图形的大小,需要的时间不一样,所以耐心等待,当出现如下图形的时候,说明cad已经导入,点击关闭图框即可
但是有时候可能导入的图形不是在参考点的位置,不在当前的界面内,我们需要如图所示,
我们可以点击最大化工具,然后图形就会最大化的出现在我们视线内,如图所示
看了“把cad导入su以后怎么建模型”
浏览量:3
下载量:0
时间:
由于工作习惯不同,有些习惯在模型中建模,有的习惯在布局中建模,那么大家知道cad2007怎么把布局复制到模型吗?下面是读文网小编整理的cad2007怎么把布局复制到模型的方法,希望能给大家解答。
首先打开要转换的CAD文件
打开后,平面中有以下两个标示,一个是模型,一个是布局文件
将箭头放置布局文件上,点击鼠标右键,选择将布局输出到模型
选择要保存到的目录
保存完成后,文件提示是否现在打开,这个根据个人需要,此处选择打开
打开后可以选择一处内容查看,测量尺寸,由于导出后的文件一般比较小,因此需要根据测量的尺寸进行缩放
由于缩放后的图纸标注文件偏小并且数据不对,因此需要大家自己进行修改
看了“cad2007怎么把布局复制到模型”
浏览量:3
下载量:0
时间:
有的习惯在模型中建模,有的习惯在布局中建模。那么大家知道cad2007中怎么把布局转化为模型吗?下面是读文网小编整理的cad2007中怎么把布局转化为模型的方法,希望能给大家解答。
首先打开要转换的CAD文件
打开后,平面中有以下两个标示,一个是模型,一个是布局文件
将箭头放置布局文件上,点击鼠标右键,选择将布局输出到模型
选择要保存到的目录
保存完成后,文件提示是否现在打开,这个根据个人需要,此处选择打开
打开后可以选择一处内容查看,测量尺寸,由于导出后的文件一般比较小,因此需要根据测量的尺寸进行缩放
由于缩放后的图纸标注文件偏小并且数据不对,因此需要大家自己进行修改
看了“cad2007中怎么把布局转化为模型”
浏览量:3
下载量:0
时间:
在CAD中布局和模型是两种不同的空间,那么大家知道cad布局怎么转到模型空间吗?下面是读文网小编整理的cad布局怎么转到模型空间的方法,希望能给大家解答。
首先打开要转换的CAD文件
打开后,平面中有以下两个标示,一个是模型,一个是布局文件
将箭头放置布局文件上,点击鼠标右键,选择将布局输出到模型
选择要保存到的目录
保存完成后,文件提示是否现在打开,这个根据个人需要,此处选择打开
打开后可以选择一处内容查看,测量尺寸,由于导出后的文件一般比较小,因此需要根据测量的尺寸进行缩放
由于缩放后的图纸标注文件偏小并且数据不对,因此需要大家自己进行修改
看了“cad布局怎么转到模型空间”
浏览量:34
下载量:0
时间: