您的位置:首页 > 编程语言 > Java开发

java编程思想--21 并发

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

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

当并行执行的任务开始产生交涉的时候,实际的并发问题开始接踵而至。

研究并发最终的原因是:如果你视而不见,将会得到其反噬。

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

1:并发的多面性

并发难在:实现并发的方式有多种,使用并发时需要解决的问题有多个。

并发处理的问题:速度,和设计可管理性,为了用户使用方便

**A:更快的执行**


a:可以再多个处理器上分发多个任务

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

实际上,使用并发编程最吸引人的一个原因是可以产生具有可响应的用户界面!!!

比如:事件驱动的编程,是单处理器上提高性能的常见示例。

b:实现并发的方式:

一,最直接的方式,在操作系统级别使用进程;而且进程之间是彼此独立的,并发实现起来比较容易。也不会涉及到资源共享的问题?!!!

二:采用多线程的方式;像java,是因为进程涉及到具体的操作系统,而线程则不需要。从而实现java的一次编译,到处运行的要求。

但是,多线程涉及到资源共享的问题。

B:改进代码的设计

例如:仿真程序

2:基本的线程机制

并发编程把一个程序划分成多个分离的,独立运行的任务。(是指在编码阶段,程序员自己划分的?还是指运行期间,自动划分的?)

然后利用多线程机制,这些独立任务的每一个都将由执行线程来驱动。

因此,单个进程,多个线程,底层是CPU时间片划分。(ps:多个处理器的,另当别论)

总结:线程的一大好处是,使得代码不必知道到底是在单处理器还是多处理器上。使得线程机制从这个层次抽身出来!

使用线程机制,可以建立一种透明的,可扩展的程序的方法。

A:定义任务

你需要一种描述任务的方式,这可以有Runnable接口来提供。要像定义任务,只需要实现Runnable接口并编写run()方法即可。使得该任务可以执行你的命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: