zoukankan      html  css  js  c++  java
  • 进程和线程新增

    1.  renice 改变正在运行进程的优先级。

    2.  bg 把挂起的进程放到后台执行。

    3.  getpid() 获得进程号  getppid() 获得父进程的进程号。

    4.  WEXITSTATUS(s) 在父进程中返回子进程号。

    5.  一个线程最大只有8M内存。

    6.  每个线程私有的资源:线程ID(TID)   PC和相关寄存器  堆栈  errno  信号掩码和优先级  执行状态和属性

    7.  -D_REENTRANT 优化线程生成可重入代码

    8.  int kikk(pid_t, int sig);  int raise(int sig); raise 只允许给自己发信号。

    9.  信号通信signal函数原型  typedef void (*sighandler_t)(int)  sighandler_t signal(int signum, sighandler_t handler);

    10.  常用的进程通信方式:

      1)传统方式:无名管道(pipe),有名管道(fifo),信号(signal)灯

      2)System V IPC对象:共享内存(share memory),消息队列(message queue),信号灯(semaphore)

      3)BSD:套接字

    11.  share memory:

      1)int shmget(key_t key, int size, int shmflg);获得共享内存

      2)char *shmat(int shmid, const void *shmaddr, int shmflag);映射到内存

      3)int shmdt(const void *shmaddr);撤销映射

      4)int shmctl(int shmid, int cmd, struct shmid_ds *buf);可以用于删除内存。

    12.  打开消息队列:megget  添加消息:megsnd  读取消息:msgrcv  控制消息:msgctl

    13.  信号灯的种类:

      1)POSIX 有名信号灯(线程之间)

      2)POSIX无名信号灯(基于内存)

      3)System V信号灯(IPC对象)

    14.  System V 信号灯权限

      1)int semget(key_t key, int nsems, int semflg); nsems,信号灯的数目 semflg 权限:IPC_CREAT|0666

      2)int semctl(int semid,int semnum, int cmd, union semun arg) 信号控制,可以用于设置信号灯的值,此时cmd为SETVAL。

      3)int semop(int semid, struct sembuf*stops, size_t nsops)  结构体sembuf中,-1:分配资源,p操作,消费者  1:释放资源,v操作,生产者。              0:等待。

  • 相关阅读:
    python_接口基础知识
    python_基础总结
    python_配置文件_yaml
    python_loggin日志处理
    python_数据驱动_ddt
    python_unittest_单元测试_openpyxl
    python_类与对象总结_继承
    python_路径操作及类和对象
    python_导包
    Codeforces Round #655 (Div. 2) B. Omkar and Last Class of Math
  • 原文地址:https://www.cnblogs.com/oyjngz101/p/6021264.html
Copyright © 2011-2022 走看看