- 浏览: 153559 次
- 性别:
- 来自: 深圳
最新评论
-
lyaqys:
lz实现的OptimisticExclusiveLock有点问 ...
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
文章列表
看了 线程持的源码和Futuretask的源码终于明白了
FutureTask 里面哟个内部类:Sync 这个内部类中包含了
private volatile Thread runner; 这样的一个定义
和 private V result; 的定义 我就明白了
在使用callable的时候最后还是会使用runnable这个接口
void innerRun() {
if (!compareAndSetState(READY, RUNNING))
return;
runner = Thread.cu ...
Eclipse 3.6 在 Ubuntu 10.04 下会出现一个很奇怪的现象,我没有经过测试,无法确定是Ubuntu 10.04 还是 JDK 还是 Eclipse本身造成的。 这个现象是:
可以在终端顺利启动Eclipse,但是鼠标双击,或者用起动器启动就会出现如下的内容:
A Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No java virtual machine was found after searching the ...
#!/usr/bin/env python
#coding=utf-8
import os
import sys
print 'python redis '
import redis
import redis
r = redis.StrictRedis(host='127.0.0.1', port=6379,db = 4)
r.set('one', 'hello')
print r.get('one')
r.flushdb()
print r.get('one')
pool = redis.ConnectionPool(host='127.0.0.1', port=6379,db = 4) ...
目录
SIGCHLD
描述
编辑本段SIGCHLD
SIGCHLD属于unix以及类unix系统的一种信号
产生原因 siginfo_t代码值
1,子进程已终止 CLD_EXITED
2,子进程异常终止(无core) CLD_KILLED
3,子进程异常终止(有core) CLD_DUMPED
4,被跟踪子进程以陷入 CLD_TRAPPED
5,子进程已停止 CLD_STOPED
5,停止的子进程已经继续 CLD_CONTINUED
编辑本段描述
在一个进程终止或者停止时,将SIGCHLD信号发送给其父进程。按系统默认将忽略此信号。如果父进程希望被告知其子系统的这种状态,则应 ...
CC = gcc
CPP = g++
CFLAGS = -g -Wall -Werror
DEST = exe
OBJECT = main.o ManagerService.o bloom.o
$(DEST): $(OBJECT)
$(CPP) $(CFLAGS) $(OBJECT) -o $(DEST) -levent
bloom.o: bloom.c bloom.h
$(CPP) -c bloom.c -o bloom.o
linux编译错误__new_exitfn: Assertion `l != ((void *)0)' failed
2012-08-23 16:47, Tags: 420人阅读
创建进程:fork(), vforl()
fork():创建进程后返回两个值,分别将子进程pid返回给父进程,将0返回给子进程。子进程完全复制 父进程的资源,并独立于父进程,有良好的并发性。
vfork():同上返回两个值,区别在于vfork()子进程共享父进程的地址空间,即子进程运行在父进程的地址空间上,子进程对数据的修改父进程同样能看到。特别注意,使用vfork() 时子进程中需调用exec 或exit ...
1 #include<iostream>
2 #include<string.h>
3 #include<stdlib.h>
4 using namespace std;
5 // error!
6 void getPointer(char * pr, int num)
7 {
8
9 pr = (char *)malloc(sizeof(char)*num);
10
11 }
12
13 //正确
14 char * getd(char * pr, int num)
15 {
16
17 ...
#define __NR_exit 1
#define __NR__exit __NR_exit /* 摘自文件include/asm-i386/unistd.h*/
"__NR_"是在Linux的源码中为每个系统调用加上的前缀,请注意第一个exit前有2条下划线,第二个exit前只有1条下划线。
Linux核心还提供了一些C语言函数库,这些库对系统调用进行了一些包装和扩展,因为这些库函数与系统调用的关系非常紧密,所以习惯上把这些函数也称为系统-调用。#define这句只能说明内核里的两个系统调用_exit和exit相同,但其封装后对应 ...
1 #include<stdio.h>
2 #include<time.h>
3
4 int main()
5 {
6
7 int seconds = 0;
8 seconds = time(NULL);
9
10 time_t t;
11 t = time(NULL);
12
13 printf("now second is:%d\n",seconds);
14 printf("time_t ...
c++ 模板不需要分离。即所有东西写在 .h 文件中好了
网上看见的例子:
1 #include <iostream>
2
3 #include "ClassTemplate.h"
4
5 using std::cout;
6
7 using std::endl;
8
9 int main()
10
11 {
12
13 myClass<int,int> class1(3,5);
14
15 class1.show();
16 ...
二、工作模式
epoll有2种工作方式:LT和ET。
l LT(level triggered)是缺省的工作方式,并且同时支持block和no-block socket。在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作,内核还是会继续通知你的,所以,这种模式编程出错误可能性要小一点。传统的select/poll都是这种模型的代表
l ET (edge-triggered) 是高速工作方式,只支持no-block socket。在这种模式下,当描述符从未就绪变为就绪时,内核就通过epoll告诉你,然后它会假设你知道文件描述符已经就绪 ...
nginx 就是使用了父子进程 共享端口,所以nginx快速这个也算一个原因
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
int main()
{
int sfp,nfp;
struct sockaddr_in s_add,c_add;
int sin_si ...
/*
Thread Pool implementation for unix / linux environments
Copyright (C) 2008 Shobhit Gupta
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of ...
static volatile int k; 在。h 文件中这样写是错误的。
但是都在一个。cpp中是ok的
例如:
1 #include<iostream>
2
3 using namespace std;
4
5 int main()
6 {
7
8
9 static bool volatile s = false;
10 s= true;
11
12 while(s){
13
14 cout<<"========"<<endl;
15 return 0; ...
#include<stdio.h>
2 #include<stdlib.h>
3 #include <pthread.h>
4 pthread_mutex_t command_mutex_ = PTHREAD_MUTEX_INITIALIZER;
5 pthread_cond_t command_cond_ = PTHREAD_COND_INITIALIZER;
6 int main(){
7
8 pthread_mutex_destroy(&command_mutex_);
9 printf("-- ...