基于初级的线程池优化,这里最主要的问题是解决线程id的管理问题,以及线程取消的管理
这里采用链表来管理线程id,链表的特性便于新增和删除,引进thread_revoke结构体来标记全局的取消线程信息,先分析一下线程什么时候需要取消:当任务很少,少到tasknum
这里维护一个取消队列,在线程取消时,置全局取消标志位为1,pthread_broadcast()唤醒所有线程,让在线程唤醒时会判断...
【问题】
Given n points
on a 2D plane, find the maximum number of points that lie on the same straight line.
【思路】
对每一个点,分别计算这个点和其他所有点构成的斜率,具有相同斜率最多的点所构成的直线,就是具有最多点的直线。
【代码】
class Point:
def __in...
JavaScript获取某年某月的最后一天
1、实现源码
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in th...
python社区不乏幽默,先来看“python之道”这首诗。
导入this包:
import this
输出时一首诗,这首诗总结了Python的风格,可以指导Python程序员的编程。下面是译文:
The Zen of Python, by Tim Peters
Python之道
Beautiful is better than ugly.
美观胜于丑陋。
Explicit i...
本文分析的是llvm libc++的实现:http://libcxx.llvm.org/
C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装。不过里面也有很多细节值得学习。
std::mutex
先来看下std::mutex:
包增了一个pthread_mutex_t __m_,很简单,每个函数该干嘛就干嘛。
class mutex...
最近在学javaweb技术,利用所学知识做了一个简单的项目,在服务器上实现给用户下载文件的功能。自动列出文件夹下的文件提供下载,支持中文文件名。
其中使用了tomcat来部署服务器,代码中应用了少许EL表达式和JSTL标签,使用了jsp和servlet,当然还有java和http的基础知识,但是个人觉得重点是http的Content-Disposition头信息和Content-type头信息在servlet中下载方面的应用...
1.开发工具
在汇编语言中,用到的工具主要用以下几个:
汇编器、连接器、调试器、编译器
因为我在这里的是AT&T汇编语言,所以工具下也都是gnu下的那些。
1.1 汇编器(as)
汇编器有很多,masm,nasm,gas等,不像高级语言,虽然都叫汇编语言,但不同的汇编器,其语法是存在很大不同的。Intel汇编的书籍到处可见,可是AT&T的却少之又少。但想看Linux内核的话,还是要对A...
最近,在研究一些比较成熟的框架,这其中也发现了一些比较不错的文章,现给大家简单翻译其中的一部分(强烈建议大家看一些原版的英文文章,很有帮助)。...
Java最基本的封装是class,除此之外还有接口interface。这段时间一直在想接口有什么作用呢,有了接口有哪些好处呢。结合网络上各位大神的文章,接口的作用大概体现在以下几个方面。
1.回调
2.方法参数
3.多态
对于上面的结论,笔者自己也做了思考,并且概括为:接口是一种能力的声明或者说是一种能力的约束。从接口能力的引用方面来看,这个是能力的声明。要想被这个接口引用指向,你就必须具...
1、对于下面的声明语句
int a; 如果其位置出现在所有的函数体之外,那么它就被称为外部对象a的定义。这个语句说明了a是一个外部整型变量,同时为a分配了存储空间。因为外部对象a并没有被明确指定任何初始值,所以它的初始值默认为0(某些系统中的连接器对以其他语言编写的程序并不保证这一点,C编译器有责任以适当方式通知连接器,确保未指定初始值的外部变量初始化为0)。
2、又如下面的声明语...