`
文章列表
linux多线程之pthread_cancel结束线程 摘要: 这篇文章主要从一个 Linux 下一个 pthread_cancel 函数引起的多线程死锁小例子出发来说明 Linux 系统对 POSIX 线程取消点的实现方式,以及如何避免因此产生的线程死锁。 目录: 1. 一个 pthread_cancel 引起的线程死锁小例子 2. 取消点(Cancellation Point) 3. 取消类型(Cancellation Type) 4. Linux 的取消点实现 5. 对示例函数进入死锁的解释 6. 如何避免因此产生的死锁 7. 结论 8. 参考文献 1. 一个 pthread_cancel ...
LockSupport.park();  停止 System.out.println("======");  为阻塞线程提供基础的功能,它由一对park和unpark组成,park会阻塞当前线程,unpark“唤醒”等待线程;内部使用了类似信号量的“许可”机制,该许可为0,park会在许可等于0 ...

c++ 虚拟抽象类

    博客分类:
  • c++
c++ 
Runnable.h: 1 #ifndef RUNNABL_H_   2 #define RUNNABL_H_   3   4 class Runnable   5 {   6   7   8         public:   9 10                virtual void* run (void * v) = 0; 11 12 13 }; 14 #endif Runnable.cpp 1 #include "Runnable.h" TaskRunnable.h:   1 #ifndef TASK_RUNNABLE_h   2 ...
今天在进行多线程编程的时候遇到了一个编译问题:error: argument of type ‘void (PIAMW::Communicator::)()’ does not match ‘void* (*)(void*)’ 后来发现将线程处理函数声明为static类型,问题得解。        其实这个原因很简单,当把线程函数封装在类中,this指针会作为默认的参数被传进函数中,从而和线程函数参数(void*)不能匹配,不能通过编译。怎么解决呢?网上有一个解决办法,引用过来,自己记着。 摘自:http://hi.chinaunix.net/?uid-11770217-action-view ...

c++ 静态变量使用

    博客分类:
  • c++
class T{ public :      T();      void sysi();      void addi();      int k; }; #include<iostream> #include "t.h" using namespace std; //static 加与不加效果是一样的,私有的静态变量 int i = 0; T::T(){ k=0;// 局部变量 } void T::sysi(){ cout<<"k is:"<<k<<endl; cout<<" ...

基础例子

1 #include <stdio.h>   2 #include <stdlib.h>   3 int main()   4 {   5  char s[1024];   6  char * ss = s;   7  char * who=" I";   8  char * whom = " linux";   9  sprintf(s, "%s love %s\n", who, whom); 10  printf("--------------\n"); 11  printf(ss); ...
TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能。 默认的Keepalive超时需要7,200,000 milliseconds,即2小时,探测次数为5次。它的功效和用户自己实现的心跳机制是一样的。开启Keepalive功能需要消耗额外的宽带和流量,尽管这微不足道,但在按流量计费的环境下增加了费用,另一方面,Keepalive设置不合理时可能会因为短暂的网络波动而断开健康的TCP连接。 keepalive并不是TCP规范的一部分。在Host Requirements RFC ...
配置文件: recluster_ehcache_0.xml <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"           xsi:noNamespaceSchemaLocation="ehcache.xsd">           <cacheManagerPeerProviderFactory               class="net.sf.ehcache.distribution.RMICacheManagerPeerProv ...
Voldemort — 分布式 key-value 存储系统 拜读了关于 LinkedIn 几位工程师写的构建 TB 级的 key-value 系统的经验:Building a terabyte-scale data cycle at LinkedIn with Hadoop and Project Voldemort。具体实现过程有大致的描述,就不鹦鹉学舌了。 其实现在很多公司可能都面临着这个抽象架构图中的类似问题。以 Hadoop 作为后端的计算集群,计算得出来的数据如果要反向推到前面去,用什么方式存储更为恰当? 再放到 DB 里面的话,构建索引是麻烦事;放到 Memcached 之类 ...

python http客户端

''' Created on 2013-3-18 @author: lixuan ''' # coding=utf-8 import urllib2 response = urllib2.urlopen('http://python.org/') html = response.read() print html req = urllib2.Request('http://www.voidspace.org.uk') response = urllib2.urlopen(req) the_page = response.read() import urllib url = 'htt ...
Alt+Enter  对secureCRT 进行全屏切换
package tt; import java.util.*; /** * 首先看一下这个程序的工作原理: 通过这句命令首先得到的六个数是: 8 5 12 12 15 0 然后,通过new Random(-147909649).nextInt(27)得到的6个数是: 23 15 18 12 4 0 这样一来,根据:sb.append((char) (‘`’+n)); 得到: 8 + 96 = 104 --> h 5 + 96 = 101 --> e 12 + 96 = 108 --> l 12 + 96 = 108 --> l 15 + 96 = ...
10 9,12,18 * * * /usr/local/bin/python /opt/workspace/sohu_mintor/mintor_email/EpaperStarter.py /opt/workspace/sohu_mintor/mintor_email/ >>/op t/workspace/sohu_mintor/mintor_email/log.log 2>&1
原文地址:http://blog.csdn.net/langlang2671/article/details/8259056 crontab中运行python程序出错,提示ImportError: No module named解决全过程 分类: python linux 2012-12-05 11:10 290人阅读 评论(0) 收藏 举报 将一个python脚本放入crontab执行时,提示如下错: ImportError: No module named hashlib 但是在shell中直接执行时没有任何问题,google之后,得到线索是PYTHONPATH的问题,PYTHONPATH ...
crontab是Linux下最常用的计划任务服务。本文跟大家分享一下有关linux crontab日志存放的一些心得,希望本文能教会你更多东西。 默认情况下,crontab中执行的日志写在/var/log下,如: #ls /var/log/cron* /var/log/cron /var/log/cron.1 /var/log/cron.2 /var/log/cron.3 /var/log/cron.4 如果日志有问题,可以参考以下做法: 为crontab增加日志 crontab的日志比较简单,当crond执行任务失败时会给用户发一封邮件。恰巧在我们的一台服务器上发现一个任务没有正常 ...
Global site tag (gtag.js) - Google Analytics