易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux中的工作队列(work queue)

工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH(bottom half)或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。
linux 2.6.20以后,工作队列机制和之前的版本有一点不同,在网上找了一点资料,也相应的看了一些code,现在自己总结一下:
原文参考:
http://wiki.365linux.cn/index.php?doc-view-39
http://blog.csdn.net/lanmanck/archive/2009/11/05/4770030.aspx
work queue的头文件: /kernel/include/linux/workqueue.h
work queue的数据结构:
struct work_struct {
    atomic_long_t data;
#define WORK_STRUCT_PENDING 0                  /* T if work item pending execution */
#define WORK_STRUCT_FLAG_MASK                 (3UL)
#define WORK_STRUCT_WQ_DATA_MASK         (~WORK_STRUCT_FLAG_MASK)
    struct list_head entry;
    work_func_t func;
#ifdef CONFIG_LOCKDEP
    struct lockdep_map lockdep_map;
#endif
};
其中 work_func_t 的定义如下:
typedef void (*work_func_t)(struct work_struct *work);
work queue 主要的 API:
INIT_WORK(struct work_struct *work, work_func_t func)
INIT_DELAYED_WORK(struct delayed_work *work, work_func_t func)
int schedule_work(struct work_struct *work)
void flush_scheduled_work(void)
int schedule_delayed_work(struct delayed_work *work, unsigned long delay)
int cancel_delayed_work(struct delayed_work *work)
struct workqueue_struct *create_workqueue(const char *name)
int queue_work(struct workqueue_struct *wq, struct work_struct *work)
int queue_delayed_work(struct workqueue_struct *wq, struct delayed_work *work, unsigned long delay)
void flush_workqueue(struct workqueue_struct *wq)
void destroy_workqueue(struct workqueue_struct *wq)
work queue 的使用实例:
struct my_work_t {
    ch


相关文档:

在linux字符模式下使用proxy

export http_proxy=http://username:password@server:80
这个只能在当前窗口下使用,关闭窗口命令自动失效。
 
Wget下载是用proxy:
在当前用户目录下建立一个.wgetrc文件,内容:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
分别表示http的代理服务器和ftp的代理服务器。如果代理服 ......

如何保持Linux服务器间的文件同步

来源:http://www.168-net.com/program/newsnew/data/2005-03/20050325124716723.htm 
方案一
本文详细介绍rsync服务的安装配置以及如何利用rsync保持Linux服务器间的文件同步。
  服务器之间常常要保持些文件或目录的一致,比如一些大的软件下载网站,它们通常使用多台服务器来提供下载服务。当一台服务器上的文 ......

Linux中文件的压缩与解压缩

 
Form: http://tech.sina.com.cn/c/4082.html
Linux中文件的压缩与解压缩
http://www.sina.com.cn 2001/06/28 14:15 赛迪网 李革新
 
  对许多用户来说,在DOS和Windows环境下利用工具软件ARJ、Winzip等,压缩或解压文件是比较容易的事。但是,在Linux中如何对文件进行压缩与解压呢?本文基于Red Ha ......

linux常用命令大全

linux常用命令大全
Linux 入门常用命令
1.      Linux进入与退出系统
1.1进入Linux系统:
必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:
  1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。
  2.普通用户--这个帐号供普通用户使用,可以 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号