第一次使用pthread,遇到的问题还真不少,现在我一一记录一下: 1.关于编译时出现 对‘pthread_create’未定义的引用 之类的错误的解决:由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:     gcc -o pthread -lpthread pthread.c 特别的,如果这样还没解决的话: 按照上面编译了一下,还是一样的提示. 后面man gcc…
作者:朱金灿 来源:http://blog.csdn.net/clever101/ 使用AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法.但是你会发现这一做法有时也会失灵.不信, 你测试一下下面的代码: unsigned __stdcall SecondThreadFunc( void* pArguments ) { CMainFrame* pMainWnd =  (CMainFrame*)AfxGetMainWnd(); if (NULL!=pMainWnd) { C…
今天写c时无意间用到了排序,便想着使用c语言标准库中提供的排序函数,即qsort函数(c++stl中提供了sort函数用于排序),首先是介绍qsort函数的一些基本用法(以下内容转自: http://www.cppblog.com/qywyh/articles/3405.html 七种qsort排序方法 <本文中排序都是采用的从小到大排序> 一.对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) …
最近开始写一个线程池,期间想用一个通用的函数模板来使得各个线程执行不同的任务,找到了Boost库中的function函数. Boost::function是一个函数包装器,也即一个函数模板,可以用来代替拥有相同返回类型,相同参数类型,以及相同参数个数的各个不同的函数. #include<boost/function.hpp> #include<iostream> typedef boost::function<int(int ,char)> Func; int test…
一.使用方式 pthread_t tid;pthread_create(&tid, NULL, thread_run,NULL);pthread_join(tid,NULL);创建线程之后直接调用pthread_join方法就行了. 二.为什么要使用pthread_join(www.douniu157.com) 在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待…
回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. Windows SDK中回调函数处处可见,MFC中使用回调函数要比纯Window SDK或C#,VB.net中麻烦许多,笔者想借这篇文章来总结MFC中回调函数的使用. 本文以回调函数EnumWindows为例,介绍如何在MFC中使用…
首先需要先安装pthread看的手册文档,然后用如下命令查询: man -k pthread…
Author:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,CSDN官方首发原创文章 企业博客 CSDN.com 个人博客: cnblogs.com 前言 今天很多小伙伴来问我find_in_set这个函数在MySQL中到底有什么用处 还有与这个函数相关的应用场景会有哪些? 今天我就来给大家讲解一下这个函数从基本的使用到实际应用! 让大家不再迷茫! 1.首先认识一下find_in_set()函数 首先很多小伙伴一定会…
一.线程有3种模型,分别是N:1用户线程模型,1:1核心线程模型和N:M混合线程模型,posix thread属于1:1模型. (一).N:1用户线程模型 “线程实现”建立在“进程控制”机制之上,由用户空间的程序库来管理.OS内核完全不知道线程信息.这些线程称为用户空间线程.这些线程都工作在“进 程竞争范围”(process contention scope):各个线程在同一进程竞争“被调度的CPU时间”(但不直接和其他进程中的线程竞争). 在N:1线程模型中,内核不干涉线程的任何生命活动,也不…
概述 这是我在学习函数式编程的时候,关于递归,尾递归,相互递归和蹦床函数的一些心得,记下来供以后开发时参考,相信对其他人也有用. 参考资料:JavaScript玩转Clojure大法之 - Trampoline 递归 我们知道,es5是没有尾递归优化的,所以在递归的时候,如果层数太多,就会报"Maximum call stack size exceeded"的错误.就连下面这个及其简单的递归函数都会报"Maximum call stack size exceeded"…