自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(203)
  • 资源 (1)
  • 收藏
  • 关注

转载 C++11 并发指南四(<future> 详解三 std::future & std::shared_future)

C++11 并发指南四( 详解三 std::future & std::shared_future)上一讲《C++11 并发指南四( 详解二 std::packaged_task 介绍)》主要介绍了 头文件中的 std::packaged_task 类,本文主要介绍 std::future,std::shared_future 以及 std::future_error,另

2016-10-19 16:36:22 5170

转载 C++11并发编程指南四(<future> 详解二 std::packaged_task 介绍)

上一讲《C++11 并发指南四( 详解一 std::promise 介绍)》主要介绍了 头文件中的 std::promise 类,本文主要介绍 std::packaged_task。std::packaged_task 包装一个可调用的对象,并且允许异步获取该可调用对象产生的结果,从包装可调用对象意义上来讲,std::packaged_task 与 std::function 类似,

2016-10-19 15:59:17 1396

转载 c++11并发编程指南四(std::future std::promise详解)

前面两讲《C++11 并发指南二(std::thread 详解)》,《C++11 并发指南三(std::mutex 详解)》分别介绍了 std::thread 和 std::mutex,相信读者对 C++11 中的多线程编程有了一个最基本的认识,本文将介绍 C++11 标准中 头文件里面的类和相关函数。 头文件中包含了以下几个类和函数:Providers 类:std::pro

2016-10-19 15:45:32 2197 1

转载 c++11并发编程指南三(std::mutex 详解)

上一篇《C++11 并发指南二(std::thread 详解)》中主要讲到了 std::thread 的一些用法,并给出了两个小例子,本文将介绍 std::mutex 的用法。Mutex 又称互斥量,C++ 11中与 Mutex 相关的类(包括锁类型)和函数都声明在 头文件中,所以如果你需要使用 std::mutex,就必须包含 头文件。 头文件介绍Mutex 系列

2016-10-19 15:44:02 1359 1

转载 c++并发编程指南二:<tread>头文件

上一篇博客《C++11 并发指南一(C++11 多线程初探)》中只是提到了 std::thread 的基本用法,并给出了一个最简单的例子,本文将稍微详细地介绍 std::thread 的用法。std::thread 在 头文件中声明,因此使用 std::thread 时需要包含 头文件。std::thread 构造default (1)thread(

2016-10-19 15:41:37 724

转载 c++并发编程指南一:引言

转载地址:http://www.cnblogs.com/haippy/p/3235560.html引言C++11 自2011年发布以来已经快两年了,之前一直没怎么关注,直到最近几个月才看了一些 C++11 的新特性,今后几篇博客我都会写一些关于 C++11 的特性,算是记录一下自己学到的东西吧,和大家共勉。相信 Linux 程序员都用过 Pthread, 但有了 C++11

2016-10-19 15:39:25 802

转载 nginx学习

nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源。 首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的。看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码。 现在你最希望要的是一份注释版的nginx源码,可以从下面的链接中下载一份:https://github.com/jian

2016-10-18 12:28:44 797

原创 c++并发编程:面试题-线程同步

是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2) 在主线称中起动线程1,打印“this is thread1”,并将g_Flag设置为13) 在主线称中启动线程2,打印“this is thread2”,并将g_Flag设置为24) 线程序1需要在线程2退出后才能退出5) 主线程在检测到g_

2016-10-18 10:48:10 4482

原创 使用future的并行快速排序

#include#include#include#include#include/* 非现场版本,使用函数式编程templatestd::list sequential_quick_sort(std::list input){ if (input.empty()) { return input; } std::list result; result.splice(

2016-10-18 09:41:08 576

原创 c++并发编程:迅雷笔试题

题目:编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。采用C++11实现:[cpp] view plain copy 在CODE上查看代码片派生到我的代码片#include #include #include #include using namespace

2016-10-17 21:11:46 1129

原创 使用锁的线性安全链表

/*使用锁第线性安全链表:功能如下:1、项链表添加新项目;2、从链表中删除满足一定条件的项目;3.在链表中查找满足一定条件的项目;4,更新满足一定条件的项目;4.复制链表中每个项目到两一个容器中;*/#include#include#includetemplateclass threadsafe_list{ struct node { std::sha

2016-10-17 15:44:44 742

原创 使用细粒度锁的c++线程安全队列

使用细粒度锁的c++线程安全队列实现:#include#include#include#includetemplateclass threadsafe_queue{private: struct node { std::shared_ptr data; std::unique_ptr next; }; std::unique_ptr head; node* tai

2016-10-17 10:44:12 1776

原创 高并发服务器(基于epoll)

前言本章节是用基本的Linux/Unix基本函数编写一个完整的服务器和客户端例子,可在Linux(ubuntu)和Unix(freebsd)上运行,客户端和服务端的功能如下:客户端从标准输入读入一行,发送到服务端服务端从网络读取一行,把小写变为大写,然后输出到客户端客户端收到服务端的响应,输出这一行到标准输出服务端代码如下:#includ

2016-10-14 17:23:21 1759

原创 Works Application 2017 笔试题

[Exam1] Magic CubeDescriptionMagic cube is a cube (M*M*M) which contains a integer number (0 Alice have one big cube and N smaller cubes (each small cube is unique).The cube is magic sin

2016-10-12 18:32:10 3476 3

原创 客户端禁用了cookie,怎么实现session技术共享多个页面

如果用户禁用浏览器的cookie 那么就不能在一次会话中用同一份session原因在于:在禁用cookie以后,的确是在服务器端创立了session文件, 服务器也的确是返回来set cookie的信息。但是因为浏览器禁用了cookie所以不会接受到。 所以每一次发送请求都会创建新的session,当用户禁用cookie以后,每次访问的时候,都会创建一个session 后果就是无法

2016-09-12 15:57:23 4229

原创 PHP通过SSH操作远程服务器(linux)

在PHP中安装SSH2扩展库,用PHP通过SSH操作远程服务器,在远程服务器上执行命令。 一、Linux下为PHP安装SSH2的扩展 这里基于linux(centos)发行版,其他发行版同理。 首先要确保系统已经安装好了LNMP或者LAMP环境。 1.编译安装libssh2wget http://www.libss

2016-09-08 18:23:03 7187

转载 LAMP 部署

LAMP 部署出自:https://www.shiyanlou.com/courses/94/labs/600/document一、实验简介LAMP 是一组常用来搭建动态网站或者服务器的开源软件组合,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了很高的兼容性,并且非常的稳定,从而形成了一个构建强大的Web应用程序平台的组合。LAMP 分别指的是 Lin

2016-09-05 11:24:27 2410

转载 C++ 开发 Web 服务框架 - HTTPS 的原理及其 Web 框架的设计与实(三)

C++ 开发 Web 服务框架 - HTTPS 的原理及其 Web 框架的设计与实现一、概述项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。项目涉及的知识点C+

2016-09-02 17:06:42 7206 3

转载 C++ 开发 Web 服务框架 - HTTP Web 框架的设计与实现(二)

C++ 开发 Web 服务框架 - HTTP Web 框架的设计与实现一、概述项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。项目涉及的知识点C++基本知识

2016-09-02 17:01:30 11547 6

原创 C++ 开发 Web 服务框架 - 基础知识:C++11 与 Boost Asio(一)

C++ 开发 Web 服务框架 - 基础知识:C++11 与 Boost Asio一、概述项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。项目涉及的知识点C++

2016-09-02 16:57:54 10369 1

原创 用python开发一个自己的shell(上)

我很好奇 shell(比如 bash、cash等)内部的工作原理,所以我用 Python 实现了yosh(Your Own Shell)来满足自己的好奇心。我在本文中阐释的概念同样适用于其他语言。Step 0: 项目结构在这个项目中,我使用了下面的结构:yosh_project 是项目根文件夹(你也可以用 yosh 来命名)。yosh 是包文件夹,__init__.py

2016-08-31 15:30:39 2887

原创 linux中如何写一个运行在终端里私人的英语字典(翻译)

首先给大家介绍一个翻译的网站,我经常使用的,海词词典(http://dict.cn/ ),接下来我就使用海词词典来进行脚本的编写,编写脚本的方法有很多,可以用shell,python,这里我使用shell来进行编写,python的源代码我也会提供出来,供大家选择修改。首先大家可以看一下效果:1.那么我是如何实现的呢,看一下源代码:(是不是感觉源代码非常简单)这里有一个curl,我们可以

2016-08-30 17:00:48 1549

转载 linux sed命令详解

简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 

2016-08-30 15:46:22 268

原创 shell脚本学习12——文件包含

像其他语言一样,Shell 也可以包含外部脚本,将外部脚本的内容合并到当前脚本。Shell 中包含脚本可以使用:. filename或source filename两种方式的效果相同,简单起见,一般使用点号(.),但是注意点号(.)和文件名中间有一空格。例如,创建两个脚本,一个是被调用脚本 subscript.sh,内容如下:

2016-08-30 12:52:24 388

原创 shell脚本学习11——输入输出重定向

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。输出重定向命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。命令输出重定向的语法为:$ command > file这样,输出到显示器的内容就可以被重定向到文件。

2016-08-30 12:50:12 2369

原创 shell脚本学习10——函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell 也支持函数。Shell 函数必须先定义后使用。Shell 函数的定义格式如下:function_name () { list of commands [ return value ]}如果你愿意,也可以在函数名前加上关键字 function:fu

2016-08-30 12:40:42 1179

原创 shell脚本学习9——循环指令:for、while、until

1、for循环与其他编程语言类似,Shell支持for循环。for循环一般格式为:for 变量 in 列表do command1 command2 ... commandNdone列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。in 列表是可选的,如果不用它,for 循环使用命令

2016-08-30 12:29:01 1452

原创 shell脚本学习8——分支语句:if else和case esac

1、if语句if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:if ... fi 语句;if ... else ... fi 语句;if ... elif ... else ... fi 语句。1) if ... else 语句if ... else 语句的语法:if [ expression ]then

2016-08-30 11:52:08 1353

原创 shell脚本学习7——显示指令:echo和printf

1、echo指令echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式:echo arg您可以使用echo实现更复杂的输出格式控制。显示转义字符echo "\"It is a test\""结果将是:"It is a test"双引号也可以省略。显示变量name="OK"echo "$

2016-08-30 11:48:01 3379

原创 shell脚本学习6——数组

Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。定义数组在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:    array_name

2016-08-30 11:46:26 449

原创 shell脚本学习5——字符串和注释

1、shell注释以“#”开头的行就是注释,会被解释器忽略。sh里没有多行注释,只能每一行加一个#号。只能像这样:纯文本复制#--------------------------------------------# 这是一个自动打ipa的脚本,基于webfrogs的ipa-build书写:# https://github.com/webfrogs/xcode_

2016-08-30 11:38:24 609

原创 shell脚本学习4——shell运算符

Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加:#!/bin/bashval=`expr 2 + 2`echo "Total v

2016-08-30 11:36:45 419

原创 shell脚本学习3——Shell替换

Shell替换:Shell变量替换,命令替换,转义字符如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。举个例子:#!/bin/basha=10echo -e "Value of a is $a \n"运行结果:Value of a is 10这里 -e 表示对转义字符进行替换。如果不

2016-08-30 11:23:01 440

原创 shell脚本学习2——变量

Shell支持自定义变量。定义变量定义变量时,变量名不加美元符号($),如:variableName="value"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help

2016-08-30 11:13:41 561

原创 shell脚本语言学习1——第一个shell脚本

打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。输入一些代码:#!/bin/bashecho "Hello World !"“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本。

2016-08-30 11:08:47 1009

原创 shell脚本语言学习0——概括

1、shell简介:Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Unix/Linux系统内核的一

2016-08-30 10:54:00 741

原创 linux系统调用、库函数和内核函数关系与区别

看系统调用,还有库函数,以前一直不明白,总是以为 系统调用跟库函数是一样的,但是今天才知道是不一样的。库函数也就是我们通常所说的应用编程接口API,它其实就是一个函数定义,比如常见read()、write()等函数说明了如何获得一个给定的服务,但是系统调用是通过软中断向内核发出一个明确的请求,再者系统调用是在内核完成的,而用户态的函数是在函数库完成的。系统调用发生在内核空间,因此如

2016-08-25 10:33:17 2030

转载 python+Django的web开发实例

一、创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置。也就是通过自动生成代码来建立一个Django项目--一个Django项目的设置集,包含了数据库配置、Django详细选项设置和应用 特性配置,具体操作步骤如下所示。1.新建Django项目选择sqlite数据库2.创建网站模块app3.测试新建的模块是否正常Vali

2016-08-23 15:58:41 77748 2

原创 window下配置Python+ Django + Eclipse环境

一、配置开发环境我的开发环境是:Python2.6.7 + Django1.6.2 + Eclipse1、安装Python2、安装Eclipse的Python插件PyDev如上两步如何操作请点击此进行了解 3、安装Django—Python,用来开发web网站 下载地址:https://www.djangoproject.com/download/下载完成后解压,在do

2016-08-23 15:51:00 975

转载 Arduino+GPRS 远程数据采集系统

【爱好者】Arduino+GPRS 的环境监控方案 原文地址:http://www.geek-workshop.com/thread-3829-1-1.html设备前台界面:http://www.lewei50.com/home/gatewaystatus/361#576本实采用的硬件,除了一个串口模块以外(约200元),其他均可

2016-08-22 20:15:35 11448

车牌识别字符模板

车牌识别字符模板有:数字,字母和各省份字符

2016-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除