c++ break while
#include <iostream>
#include <vector>
#include <pthread.h>
#include "destory_free_while.h"
using namespace std; Worker::Worker() {
shutdown = false;
num_thread = ;
}
void Worker::start() {
tids.resize(num_thread);
for (int i = ; i <num_thread ; ++i) {
if (pthread_create(&tids[i], NULL, sleeping, this) == ) {
cout << "thread start complete" << endl;
}
}
} Worker::~Worker() {
cout << "begin destory instance" << endl;
shutdown = true;
for(unsigned int i=; i<tids.size(); i++) {
pthread_join(tids[i], NULL);
}
} void* Worker::sleeping(void* arg) {
Worker* work = (Worker*)arg;
while(true) {
cout << "." << flush;
sleep();
if(work->shutdown) {
cout << " destory instance , thread quit" << endl;
break;
} }
} /* vim: set ts=4 sw=4 sts=4 tw=100 */
#ifndef DESTORY_FREE_WHILE_H
#define DESTORY_FREE_WHILE_H
#include <vector>
#include <pthread.h>
class Worker {
public:
Worker();
~Worker();
void start();
public:
static void* sleeping(void* arg);
public:
std::vector<pthread_t> tids;
int num_thread;
bool shutdown;
}; #endif // DESTORY_FREE_WHILE_H
#include <iostream>
#include "destory_free_while.h"
using namespace std; int main() {
Worker worker;
worker.start();
sleep();
cout << "program exit" << endl;
}
c++ break while的更多相关文章
- continue break 区别
在循环中有两种循环方式 continue , break continue 只是跳出本次循环, 不在继续往下走, 还是开始下一次循环 break 将会跳出整个循环, 此循环将会被终止 count = ...
- C# 中Switch case 返回不止用break
Switch(temp) { case "A": //跳出循环 break; case "B": //返回值 return var; case "C& ...
- jquery each函数 break和continue功能
jquery each函数 break和continue功能幸运的是另一个突破,持续一个jQuery循环方式.你可以打破在函数返回一个jQuery参数虚假循环.一个可以继续执行只是在做不指定返回值或返 ...
- [LeetCode] Integer Break 整数拆分
Given a positive integer n, break it into the sum of at least two positive integers and maximize the ...
- [LeetCode] Word Break II 拆分词句之二
Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each ...
- R for循环之break,next
next跳出本次循环 break跳出本层循环(当有多个for 循环时,即跳出最近的一个for循环)
- 关于break语句如何结束多重循环的嵌套
在Java中的break语句功能大体上同c语言, 用于循环语句中,表示结束当前循环. 但是有时候在循环嵌套语句中,仅仅靠一 个break语句想实现是不够的. 例: 如果想使sum在501时就直接输出, ...
- break与continue的区别
break 在while.for.do...while.while循环中使用break语句退出当前循环,直接执行后面的代码. continue 的作用是仅仅跳过本次循环,而整个循环体继 ...
- 高程(3):操作符、for、for...in循环、break/continue/return语句、函数等
1.关系操作符 注意点:1)比较操作数是两个字符串,是比较字符串的字符编码值. 如:"a" > "b" 返回 false:"a" & ...
- case break结构与return的有关要点
//确认事件 private void cmd_ok_Click(object sender, EventArgs e) { //客户名称是否为空 if (txt_banhao.Text.TrimEn ...
随机推荐
- sql 计算两时间或日期 的相差的 年、 月、 日、时、分、秒,年、月、日分别的提取
--年.月.日.时.分.秒 datediff(yy,date1,date2) datediff(m,date1,date2) datediff(d,date1,date2) datediff(hh,d ...
- [老老实实学WCF] 第五篇 再探通信--ClientBase
老老实实学WCF 第五篇 再探通信--ClientBase 在上一篇中,我们抛开了服务引用和元数据交换,在客户端中手动添加了元数据代码,并利用通道工厂ChannelFactory<>类创 ...
- 20140912-.NET平台技术思维导图
前段时间在网上看到的一张图,忘记出处了.
- fread 和 fwrite 函数用法示例以及注意事项
1.函数功能 用来读写一个数据块. 2.一般调用形式 fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 3.说明 ( ...
- C++四种不同的对象生存方式
在C++中,有四种方法产生一个对象. 第一种方法是在堆栈(stack)之中产生: void MyFunc() { CFoo foo;//在堆栈(stack)中产生foo对象 } 第二种方法是在堆(he ...
- 7款经典炫酷的HTML5/jQuery动画应用示例及源码
jQuery是一款普遍受前端开发者欢迎的Javascript框架,但是开发者貌似更关注jQuery开发的插件,海量的jQuery插件让前端开发者非常方便.HTML5的加入让jQuery这个家族更加丰富 ...
- 模拟n步一维随机游走的情况。
package randomWalk; import java.util.Random; import java.util.Scanner; public class RandomWalk { pub ...
- EF6数据迁移
当Moldes发生改变时 会提示数据上下文的模型已在数据库创建后发生改变,则需要重建数据库并数据迁移 在NuGet程序包管理控制台输入enable-migrations启用数据迁移 之后会提示&quo ...
- ADO.NET笔记——读取二进制大对象(BLOB)
相关知识: 在SQL Server中,一般情况下,每行数据的总长度不能超过8K字节.因此,下列数据类型的长度,也不能超过8K字节:binary,char(),nchar(),varchar(),nva ...
- c#多层嵌套Json
Newtonsoft.Json.Net20.dll 下载请访问http://files.cnblogs.com/hualei/Newtonsoft.Json.Net20.rar 在.net 2.0中提 ...