博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019-1 20165301 《信息安全系统设计基础》第八周学习总结
阅读量:5226 次
发布时间:2019-06-14

本文共 1151 字,大约阅读时间需要 3 分钟。

2018-2019-1 20165301 《信息安全系统设计基础》第八周学习总结

  • 三种并发方式
    • 进程:用内核来调用和维护,有独立的虚拟地址空间,显式的进程间通信机制。

    • 线程:运行在一个单一进程上下文中的逻辑流。由内核进行调度,共享同一个虚拟地址空间。
    • I/O多路复用:应用程序在一个进程的上下文中显式地调度控制流。逻辑流被模型化为状态机。
  • C/S编程模型
    • 客户端和服务器都是进程,C/S编程模型由一个服务器进程和一个或多个客户端进程组成

    • 服务器进程管理某种资源,通过操作这种资源来为它的客户端提供某种服务。基本操作为事务,一个客户端-服务器事务由四步组成:

      • 客户端向服务器发送请求,发起一个事务;
      • 服务器收到请求,操作资源;
      • 服务器给客户端发送一个响应,并等待下一个请求。
      • 客户端收到响应并处理它。
        1296455-20181125230236627-671972134.png
  • 创建线程
    • pthread create:创建一个新的线程,在新线程的上下文中运行线程例程f。新线程可以通过pthread _self获得自己的线程ID。
#include 
typedef void *(func)(void *); int pthread_create(pthread_t *tid,pthread_attr_t *attr,func *f,void *arg);
  • 终止线程
    • 一个线程的终止方式:当顶层的线程例程返回,线程会隐式地终止;
      pthread_exit:线程显式地终止。
#include 
void pthread_exit(void *thread_return); #include
int pthread_cancel(pthread_t tid);
  • 回收已终止线程的资源
    • pthread _join:阻塞,直到线程tid终止,回收已终止线程占用的所有存储器资源。
#include 
int pthread_join(pthread_t tid,void **thread_return);
  • 分离线程
    • 在任何一个时间点上,线程是可结合的或者是分离的。一个可结合的线程能够被其他线程收回其资源和杀死;一个可分离的线程是不能被其他线程回收或杀死的。它的存储器资源在它终止时有系统自动释放。默认情况下,线程被创建成可结合的,为了避免存储器漏洞,每个可集合的线程都应该要么被其他进程显式的回收,要么通过调用pthread _detach被分离。
#include 
int pthread_detach(pthread_t tid);

转载于:https://www.cnblogs.com/CTF5301/p/10018040.html

你可能感兴趣的文章
C++对vector里面的元素排序及取任意重叠区间
查看>>
蓝桥杯题——包子凑数
查看>>
软件测试——性能测试总结
查看>>
sky1301测试总结 just before chip comes back
查看>>
12.4站立会议
查看>>
Sequelize为什么需要使用Migrations
查看>>
在Js中得到元素的子元素集合注意事项
查看>>
Spring MVC之DispatcherServlet初始化详解
查看>>
多线程篇-GCD-基本概念使用
查看>>
生成唯一的随机数
查看>>
尼玛某前辈把ant 工程 改成android studio工程然后上传了 对我来说 尼玛这玩意就和屎一样...
查看>>
SSM整合(精简版)
查看>>
各种xml文件约束,Eclipse用
查看>>
泰勒展开,傅里叶变换,拉普拉斯变换和Z变换的物理意义
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
Python 面向对象(其四)
查看>>
客户端访问浏览器的流程
查看>>
Linux——ls
查看>>
操作系统(八) 死锁
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>