java编程思想--21 并发

原创 2015年11月21日 11:27:46

学习并发编程,相当于学习一门新的语言。理解并发编程,难度不亚于理解面向对象编程。还需要看专门该主题的书籍

并发编程,在单处理器上,是看起来同时多任务;而在多处理器上,确实是同时处理多个任务。 所以,很多时候,为了看起来多任务或则,实际多任务(提高程序的速度),我们需要使用并发编程

当并行执行的任务开始产生交涉的时候,实际的并发问题开始接踵而至。
研究并发最终的原因是:如果你视而不见,将会得到其反噬。

总结:并发编程,有时候是必须使用的。不管是为了看起来并发,还是实际真的在并发; 既然使用了并发编程,就要了解其机制,从而去解决实际遇到的问题的起因。

1:并发的多面性
并发难在:实现并发的方式有多种,使用并发时需要解决的问题有多个。
并发处理的问题:速度,和设计可管理性,为了用户使用方便

 **A:更快的执行**

a:可以再多个处理器上分发多个任务
更重要的是,在单个处理器上提高速度。因为涉及到 阻塞,在单个处理器上如果没有任务阻塞的话,那么并发编程就没有了意义。

实际上,使用并发编程最吸引人的一个原因是可以产生具有可响应的用户界面!!!
比如:事件驱动的编程,是单处理器上提高性能的常见示例。

b:实现并发的方式:
一,最直接的方式,在操作系统级别使用进程;而且进程之间是彼此独立的,并发实现起来比较容易。也不会涉及到资源共享的问题?!!!
二:采用多线程的方式;像java,是因为进程涉及到具体的操作系统,而线程则不需要。从而实现java的一次编译,到处运行的要求。
但是,多线程涉及到资源共享的问题。
B:改进代码的设计
例如:仿真程序

2:基本的线程机制

并发编程把一个程序划分成多个分离的,独立运行的任务。(是指在编码阶段,程序员自己划分的?还是指运行期间,自动划分的?)
然后利用多线程机制,这些独立任务的每一个都将由执行线程来驱动。
因此,单个进程,多个线程,底层是CPU时间片划分。(ps:多个处理器的,另当别论)

总结:线程的一大好处是,使得代码不必知道到底是在单处理器还是多处理器上。使得线程机制从这个层次抽身出来!
使用线程机制,可以建立一种透明的,可扩展的程序的方法。

A:定义任务
你需要一种描述任务的方式,这可以有Runnable接口来提供。要像定义任务,只需要实现Runnable接口并编写run()方法即可。使得该任务可以执行你的命令。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java编程思想之并发

Java编程思想之并发
  • chun0801
  • chun0801
  • 2016年07月06日 00:40
  • 2207

《Java编程思想》学习笔记18——并发编程(一)

线程是进程中一个任务控制流序列,由于进程的创建和销毁需要销毁大量的资源,而多个线程之间可以共享进程数据,因此多线程是并发编程的基础。 多核心CPU可以真正实现多个任务并行执行,单核心CPU程序其实不...
  • chjttony
  • chjttony
  • 2011年12月04日 16:51
  • 5868

Java编程思想-java中的并发(三)

三、终结任务1. 在阻塞时终结线程状态一个线程可以处于以下四种状态之一: 1)新建(new):当线程被创建时,他只会短暂的处于这种状态。此时,他已经分配了必须的系统资源,并执行了初始化。此刻线程已经有...
  • nuaazhaofeng
  • nuaazhaofeng
  • 2016年12月10日 22:10
  • 425

并发(java编程思想)笔记

package com.facaizhu.concurrency; //实现 Runnable,只表示具有一个 run 方法,但它并没有线程能力,请看 main 方法 public class Li...
  • oney139
  • oney139
  • 2012年10月08日 10:56
  • 2010

Java编程思想-并发(6)

性能调优 通过前几篇的介绍,我们知道JDK1.5中的java.util.concurrent包中存在大量的辅助并用于提升性能的类。本文将着重讨论并比较这个包中的部分类之间的性能。 比较各类互斥...
  • vanpersie_9987
  • vanpersie_9987
  • 2017年04月13日 13:25
  • 253

java编程思想(读书笔记):21.并发

到目前为止,你学到的都是有关 顺序编程 的知识。即程序中的所有事物在任意时刻都只能执行一个步骤。 下面我们应该学一学并发编程吧。并发“具有可论证的确定性,但是实际上具有不可确定性”。实际上,你可能无法...
  • he_world
  • he_world
  • 2016年10月23日 18:23
  • 546

Java编程思想-java中的并发(二)

二、共享受限资源有了并发就可以同时做多件事情了。但是,两个或多个线程彼此互相干涉的问题也就出现了。如果不防范这种冲突,就可能发生两个线程同时试图访问同一个银行账户,或向同一个打印机打印,改变同一个值等...
  • nuaazhaofeng
  • nuaazhaofeng
  • 2016年12月10日 22:09
  • 410

java编程思想--21 并发

学习并发编程,相当于学习一门新的语言。理解并发编程,难度不亚于理解面向对象编程。还需要看专门该主题的书籍并发编程,在单处理器上,是看起来同时多任务;而在多处理器上,确实是同时处理多个任务。 所以,很多...
  • steady_pace
  • steady_pace
  • 2015年11月21日 11:27
  • 259

JAVA编程思想练习答案(完整版)

  • 2015年05月14日 09:08
  • 1.71MB
  • 下载

《Java编程思想第四版》笔记---21章(1) 并发

线程是进程中一个任务控制流序列,由于进程的创建和销毁需要销毁大量的资源,而多个线程之间可以共享进程数据,因此多线程是并发编程的基础。 多核心CPU可以真正实现多个任务并行执行,单核心CPU程序其实不是...
  • u012861467
  • u012861467
  • 2016年08月27日 00:19
  • 695
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java编程思想--21 并发
举报原因:
原因补充:

(最多只允许输入30个字)