码迷,mamicode.com
首页 > 其他好文 > 详细

软件构造 并发1

时间:2018-06-16 23:02:05      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:多个   服务   创建线程   通信   共享文件   在线   方法   存在   轻量级进程   

并发:多个运算同时发生。
并发模型:共享内存 消息传递
共享内存:并发模块通过在内存中读写共享对象进行交互

                  ①两个处理器共享物理内存②两个程序共享文件③两个线程(同一个java程序)共享对象

技术分享图片

消息传递:并发模块通过通信通道相互发送消息进行交互。模块发送消息,并将传入的消息发送到每个模块以便处理

                 ①网络中两台计算机通信②web浏览器web server③即时消息的客户端和服务器④通过管道连接两个程序的输入和输出

技术分享图片

 

 
进程 线程两种不同的并发模块
进程:正在运行程序的一个实例,拥有自己私有专用的内存空间
      抽象为虚拟计算机(拥有独立的执行环境和完整的资源)①通常不共享内存,不能访问其他进程的内存或对象,需特殊机制才可实现进程间共享内存
                      (应用程序可能为一组协作进程)    ②进程通信采用的是消息传递方式
线程:正在运行程序的一个执行路径(一个进程可对应多个线程),线程有自己的堆栈和局部变量,但多个线程共享内存空间
      抽象为虚拟处理器(轻量级进程)①线程与进程中的其他线程共享相同的资源(内存,打开文件),线程存在于进程内。
                                                            ②线程采用内存共享机制通信,需特殊处理才能实现消息传递和私有内存

技术分享图片

JAVA提供了并发编程的库函数java.util.concurrent

每个应用程序至少有一个线程。从main线程开始,创建其他的线程
创建线程的两种方法:①创建Thread类
                                    Thread类本身实现了Runnable接口,但是run方法什么都没做,应用程序继承Thread,提供自己的run()实现。
                                    调用Thread.start()启动新线程。

                                     技术分享图片
                                   ②实现Runnable接口,作为参数传递给new Thread()构造函数

                                    

                                    技术分享图片

                                     Runnable接口定义了一个方法run(),包含在线程中执行的代码。Runnable对象被传递给Thread构造函数。调用Thread.start()启动新线程

                                     技术分享图片

惯用法:用一个匿名的Runnable启动一个线程,它避免了创建类名的类。

技术分享图片

 

软件构造 并发1

标签:多个   服务   创建线程   通信   共享文件   在线   方法   存在   轻量级进程   

原文地址:https://www.cnblogs.com/xgl122/p/9191640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!