进程交换

#include<iostream.h>
#include<string>
using namespace std; //不加此句,string无法使用。string是定义在名字空间std中的
struct PCB  //定义进程结构(PCB)
 {
  int ID;     //进程ID
  int jj;     //进程优先级
  int dx;     //进程大小
  string jx;  //进程信息
  bool hs;  //活动标识

 };       //结构体寄存器,用于中转其内在数据

struct PCB A[5],t;
void swap(Player *a,Player *b);
int A_ID[5];//进程ID寄存器

void main()
{
/* vc6.0不给力,Player p1 = {"han",28,186};出现错误:
non-aggregates cannot be initialized with initializer list
*/
     p1.name = "han";
     p1.age = 28;
     p1.height = 186;
     p2.name = "wang";
     p2.age = 26;
     p2.height = 178;


     Player *pp1 = &p1;
     Player *pp2 = &p2;
     swap(pp1,pp2);
     cout<<p1.age<<endl;


     A[0].ID=1;
     A[0].jj=1;
     A[0].dx=3;
     A[0].hs=true;
     A[0].jx="123";

    A[1].ID=20;
    A[1].dx=21;
    A[1].hs=true;
    A[1].jj=12;
    A[1].jx="2662ss";

    A[2].ID=300;
    A[2].dx=123;
    A[2].hs=true;
    A[2].jj=56;
    A[2].jx="56122d";
}

void swap(Player *a,Player *b)
{
    Player temp;
     temp = *a;
       *a = *b;
     *b = temp;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,可以使用multiprocessing模块创建进程来并行处理任务,同时也可以使用该模块提供的Queue来实现多进程之间的数据共享和通信。下面是一个简单的例子,演示了如何在多个进程之间共享数据: ```python import multiprocessing def producer(queue): for i in range(10): queue.put(i) def consumer(queue): while True: item = queue.get() if item is None: break print(item) if __name__ == '__main__': queue = multiprocessing.Queue() p1 = multiprocessing.Process(target=producer, args=(queue,)) p2 = multiprocessing.Process(target=consumer, args=(queue,)) p1.start() p2.start() p1.join() queue.put(None) p2.join() ``` 在这个例子中,我们创建了一个Queue对象,并将其传递给两个进程。生产者进程通过put()方法将10个整数放入队列中,而消费者进程则不断地从队列中取出数据并打印。注意到我们在队列的末尾放了一个None对象,以此来告诉消费者进程已经没有数据可取了,可以结束了。 除了Queue之外,还可以使用multiprocessing模块提供的Pipe来实现进程间的通信。Pipe函数返回一对连接对象,分别代表管道的两端。我们可以通过这些连接对象向管道中发送和接收数据。下面是一个例子: ```python import multiprocessing def child(conn): conn.send([42, None, 'hello']) conn.close() if __name__ == '__main__': parent_conn, child_conn = multiprocessing.Pipe() p = multiprocessing.Process(target=child, args=(child_conn,)) p.start() print(parent_conn.recv()) # prints "[42, None, 'hello']" p.join() ``` 在这个例子中,我们创建了两个进程之间的管道,并将管道的一端传递给子进程。子进程通过send()方法向管道中发送一个列表,包含一个整数、一个None对象和一个字符串。父进程则通过recv()方法从管道中读取数据,打印出刚才子进程发送的列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值