zoukankan      html  css  js  c++  java
  • 软件构造 并发1

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

                      ①两个处理器共享物理内存②两个程序共享文件③两个线程(同一个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启动一个线程,它避免了创建类名的类。

  • 相关阅读:
    predis操作
    mysql 笔记(转载)
    mysql 汉字根据首字母排序
    sql 优化
    update多条不同数据
    解决network is unreachable问题
    开启服务器端口
    数据库开启远程访问
    激活2021.2.1idea
    python向excel追加数据
  • 原文地址:https://www.cnblogs.com/xgl122/p/9191640.html
Copyright © 2011-2022 走看看