`
文章列表
看了 线程持的源码和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信号发送给其父进程。按系统默认将忽略此信号。如果父进程希望被告知其子系统的这种状态,则应 ...

makefile例子

gcc 
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

vfork() 使用注意

 
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 ...

c++动态内存

    博客分类:
  • c++
  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++模板

    博客分类:
  • c++
c++ 
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("-- ...
Global site tag (gtag.js) - Google Analytics