ACE

xiaoxiao2026-04-11  6

//Spawn the first set of threads that work on task 1. if(ACE_Thread_Manager::instance()->spawn_n(num_task_1, (ACE_THR_FUNC)taskone,//Execute task one 0, //No arguments THR_NEW_LWP, //New Light Weight Process ACE_DEFAULT_THREAD_PRIORITY, 1)==-1) //Group ID is 1 ACE_ERROR((LM_ERROR, "Failure to spawn first group of threads: %p \n"));   //Spawn second set of threads that work on task 2. if(ACE_Thread_Manager::instance()->spawn_n(num_task_2, (ACE_THR_FUNC)tasktwo,//Execute task one 在ACE中,TSS通过使用ACE_TSS模板类来实现。需要成为线程专有的类被传入ACE_TSS模板,然后可以使用C++的->操作符来调用它的全部公共方法。 ACE_TSS<DataType> data; static void* thread1(void*) { data->set(10); ACE_DEBUG((LM_DEBUG,"(%t)The value of data is %d \n",data->get())); for(int i=0;i<5;i++) data->increment(); ACE_DEBUG((LM_DEBUG,"(%t)The value of data is %d \n",data->get())); return 0; } 0, //No arguments THR_NEW_LWP, //New Light Weight Process ACE_DEFAULT_THREAD_PRIORITY, 2)==-1)//Group ID is 2 ACE_ERROR((LM_ERROR, "Failure to spawn second group of threads: %p \n"));   //Wait for all tasks in grp 1 to exit ACE_Thread_Manager::instance()->wait_grp(1); ACE_DEBUG((LM_DEBUG,"Tasks in group 1 have exited! Continuing \n"));   //Wait for all tasks in grp 2 to exit ACE_Thread_Manager::instance()->wait_grp(2);   ACE_DEBUG((LM_DEBUG,"Tasks in group 2 have exited! Continuing \n")); [b] thr_mgr->suspend_grp (grp_id) thr_mgr->resume_grp (grp_id) thr_mgr->resume_grp (grp_id) == -1 thr_mgr->wait ();[/b]
转载请注明原文地址: https://www.6miu.com/read-5047194.html

最新回复(0)