当前位置:  技术问答>linux和unix

在类中是否可以(如果可以的话,怎么)调用线程

    来源: 互联网  发布时间:2016-12-21

    本文导语:  想做个服务器端的开发,有个想法,是否可以在类的成员函数中创建一个线程,用该线程去处理一些定时查询的功能。 但是在实现的时候发现有些问题。创建完线程之后,处理函数的地址应该怎么给? 试用了三种方...

想做个服务器端的开发,有个想法,是否可以在类的成员函数中创建一个线程,用该线程去处理一些定时查询的功能。
但是在实现的时候发现有些问题。创建完线程之后,处理函数的地址应该怎么给?
试用了三种方法,一种向普通线程一样定义(知道不管用,但是也试了试);另一种把入口函数定义成该类的静态成员函数;第三种把入口函数定义成该类的一般成员函数;
下面是代码:

#include 

class classthread
{
 public:
    void start();
    void * proc(void * arg);
    //static void * proc(void * arg);
};
//头文件


#include "classthread.h"
#include 
#include 

void classthread::start()
{
    pthread_t threadID=100;
    //m_thread=pthread_create(&threadID,NULL, (void *)&(classthread::proc), NULL);
    m_thread=pthread_create(&threadID,NULL, (void *)proc, NULL);
    while(1)
    {
        printf("server is running;n");
    }
}

void * proc(void * arg)
{
    while(1)
    {
        sleep(3);
        printf("subthread is runningn");
    }
}

/*
void * classthread::proc(void * arg)
{
    while(1)
    {
        sleep(3);
        printf("sub thread is running;n");
    }
}
*/


|
线程函数可以是类得成员函数,具体有三种方法:使用static函数;使用友元函数;使用回调函数。
具体见:http://blog.csdn.net/braveyly/article/details/3446472

    
 
 

您可能感兴趣的文章:

  • 请问用jb7编写的程序是否可以超平台,即在win下写的程序是否可以在linux下运行?
  • unix中是否可以有第三个可以给用户用的信号?
  • socket是否可以同时读写
  • 请问怎么判断裸设备是否可以删除
  • 两个LINUX系统是否可以同时安装在一个硬盘上呢?
  • 是否可以降级编译内核?
  • java applet和servlet之间是否可以传递对象?
  • 急! 苹果分区是否可以支持大于2T的硬盘??
  • ls 命令是否可以分屏显示内容?
  • linux分区的大小是否可以改变
  • 急!哪位朋友在aix系统下配置过apache+tomcat ? 它所使用的apache+tomcat程序,是否可以用在linux下的程序是一样的 ? 在哪儿可以下载
  • 你是否可以回答Socket的问题?数据先后问题
  • 可不可以在DOS的批处理中间判断某个文件是否存在?
  • 请问valgrind是否可以编译到arm板上运行,谢谢!!
  • 是否可以在VI下直接运行make ?
  • 请问TOMCAT的LINUX包是否都可以在SCO UNIX中运行和安装
  • curses编程库中的form中的一个表单域是否可以设置多种颜色
  • Apache 上是否可以制定某目录为cgi目录?
  • /etc/hosts中添加的域名信息,用哪个命令可以测试添加的内容是否正确?
  • UNIX如何检查安装软件版本及是否可以升级
  • 同步synchronized问题是否只在多线程中考虑,单线程中是否考虑,Why?
  • 在一个进程的主线程中如何判断自己创建的线程是否存在?
  • linux 下多线程 每个线程能否使用alarm来处理,信号是否会乱呢?
  • 请问在多线程得程序中,函数内的局部变量是否线程安全的
  • 锁是否可以在一个线程中加锁 而在另一个线程中解锁
  • 小问题:在线程中调用sleep()使其睡眠的时候,此线程是否释放所占的资源?
  • linux下的c++如何判断线程是否结束?
  • linux下time函数是否线程安全
  • Linux怎样区分一个进程是否是线程啊?
  • 如何判断一个线程是否结束?
  • 单条汇编语句是否可能因线程切换而被打断?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 子类从父类中继承的方法在内存中是否和父类的方法在同一位置??调用了子类,是否在内存中一定有父类??
  • 已知进程名,检测进程是否在运行并调用
  • 如何判断expect中调用的命令是否成功?
  • tuxedo客户端调用的tpacall返回的fd是否支持poll?
  • 怎么检查一个进程是否调用了系统函数呢?
  • 新手的菜鸟问题:不同内核版本下编译的程序能否互相调用,是否需要在同一内核下重新编译.
  • Applet是否可以调用服务器端的bean,或者是Frame
  • UNIX C函数中是否有类似“ls”的函数调用?
  • 是否可以用C语言来实现调用一个远端的web service?
  • C++是否可以直接调用所有的system call?
  • shell调用oracle储存过程,怎么判断储存过程执行结果是否正确
  • select+read 读服务器发送过来的数据, 假设服务器调用close后, 客户端的select是否返回这个socket可读?
  • 在vb中是否可以调用javabean写的业务层?
  • 在纯C当中是否支持多态,例如int abc(int a);int abc(char b);系统会根据不同的参数类型,调用不同的函数
  • unix编程:怎么判断一个进程是否存在呢?有无系统调用方法?
  • read一个socket, 发现read到的长度是0, 是否一定代表对方调用了close关闭了socket?
  • 大家好,初学Java, 我用的JDK1.2与Visual J++有什么区别?你们用的是什么工具?在DOS下编译与调试不是很麻烦吗?VJ开发的JavaBean是否也可用Jdk、JSP等来调用?
  • C++ Vectors 成员 empty():判断Vector是否为空(返回true时为空)
  • suse11 如何查看防火墙是否关闭,远程桌面是否开启,sshd和vsftpd这些服务是否开启?
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例
  • 请问Unix下是否有函数得知“指定文件是否被打开”?
  • javascript操作html复选框checkbox:如何判断复选框是否被选中
  • 怎么知道自己的redhat linux 的端口是否已经开放,比如我想看看80和21端口是否开放?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • shell如何判断文件是否存在,如何判断变量是否为空
  • java实现判断字符串是否全是数字的四种方法代码举例
  • unix下如何判断一个文件夹是否存在?(也就是某个路径是否存在)
  • 程序员跳槽前需仔细思考:你是否做到以下10点?
  • unix与linux的关系,是否免费?两者是否开放源码?各到什么版本?何处下载?
  • ubuntu系统中软件安装、卸载以及查询是否已经安装某个软件包的方法
  • 已知一个进程的PID,但不知道这个进程是否停止,如何能知道系统中是否有相应的进程在运行。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3