早期的计算机中不包含操作系统,从头至尾都只执行一个程序,并且这个程序能访问计算机所有资源。随着计算机发展,操作系统的出现,使得计算机可以同时运行多个程序,并且每程序都在单独的进程内运行。为什么要这么做呢?主要基于以下原因:
既然计算机由单任务发展为多任务,那程序自然也可以从传统的串行程序发展为并发程序。
串行程序的优势在于简单直观。但同样由于以上三个原因促使线程的出现。上述计算机可以在单独的进程内运行程序,而线程允许在同一个进程内存在多个程序控制流,一个程序的多个线程还可以同时被多个CPU调度运行。这就等同于计算机同时执行多个程序(进程),程序同时执行多个线程。即进程内运行线程。
线程又称轻量级进程。现如今的操作系统都是以线程为基本单位调度的。由于线程间共享资源,如果没有明确的同步机制,便会导致线程间执行紊乱,数据错误或失效,导致异常。这通常也是并发编程的难度所在。
以我的观点,所谓的并发编程就是对线程的运用。线程能将很多异步工作流转换成串行工作流,而并发编程便是在异步情况下实现同步,使其符合需求。
立即学习“Java免费学习笔记(深入)”;
那么线程有哪些优势和风险呢?
线程能有效的降低程序开发和维护成本,提升性能。降低代码复杂度,更好模拟人类工作方法。
追梦A系列(11.0版本,以下11.0均简称为A)是针对企业网站定制设计的,模板采用全新AS3.0代码编辑,拥有更快的运行和加载速度,A系列模板主要针对图片展示,拥有简洁大气展示效果,并且可以自由扩展图片分类,同时还拥有三个独立页面介绍栏目,一个新闻栏目,一个服务介绍栏目,一个幻灯片展示和flv视频播放栏目。A系列模板对一些加载效果进行了修改,包括背景的拉伸模式以及标题的展示方式等都进行了调整,同
0
线程的支持是把双刃剑,并发程序的开发也给程序员们带来了更高的水平要求。
关于安全性有一个很好的例子:
value++;
只此一行代码,在单线程程序下完全没有问题,但在多线程下可能会出现意想不到的后果。
执行此行代码分三步:1.读取value值;2.value值加1;3.将加1的值赋回value。而程序中可能由多个线程交替执行,在此期间如果两个线程同时读出value,从而得到相同的值,又同时把它加1,结果就是不同线程获得同样的值。而我们的期望是这个值被加了两次。
每一个java程序都会使用线程,即时你在程序中没有显示地创建线程,使用的框架仍在创建线程,这些线程必须是线程安全的。
以上就是JAVA的简单介绍的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号