- 浏览: 153593 次
- 性别:
- 来自: 深圳
最新评论
-
lyaqys:
lz实现的OptimisticExclusiveLock有点问 ...
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
文章列表
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 ...
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 ...
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 之类 ...
'''
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 ...
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 = ...
python crontab 传送文件
- 博客分类:
- python
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执行任务失败时会给用户发一封邮件。恰巧在我们的一台服务器上发现一个任务没有正常 ...