【C++】makefile
makefile用途:
makefile文件帮助我们记录了整个项目工程的所有需要编译的文件列表,这样我们在编译时仅需要输入简单的make命令就能编译出我们期望的结果
makefile文件反映了整个项目中各个模块的依赖关系,这样我们改动了某些源文件后,仅需简单的输入make命令,make工具就会根据makefile文件里描述的依赖关系帮助我们分析哪些模块需要重新编译,并执行相应的操作。
make...
【TCP/IP协议】socket套接字
1. Socket
之前讲过TCP/IP各层的定义,基于套接字的编程处在传输层和应用层的中间。Socket能够兼容多种网络协议,最常见的是TCP/UDP。
下面是使用scoket编程,客户端与服务器端TCP连接的整个过程:
注意看每个状态下的括号里的就是程序中具体用到的函数,而具体程序中,客户端和服务器端是这样调用这些函数的:
客户端创建套接字(socket),与服务器端进行连接(...
【C++】 线程的创建和结束
线程的创建用的函数是pthread_create,用到的库是pthread。
成功会返回0,失败返回错误码。thread是输出,输出的是线程句柄,其实pthread_t代表的就是创建的线程的ID。
统一进程内的线程,除了栈区是特有的,其他区域都是共享的。
线程的终止分为主动终止和被动终止。...
【C++】 线程的互斥与同步
同一个进程的线程共享进程内的绝大部分资源,当一段访问这些共享资源的代码块,有可能被多个线程执行时,那么这段代码块就称为临界区。
当有多个线程并发的在临界区执行时,程序的执行结果会出现不确定性,这种情况称之为竞态条件。
多线程编程中,避免出现竞态条件的一项重要解决方案就是,保证多个线程在临界区是互斥的。所谓的互斥,就是指不能同时有多于一个线程进入临界区。 保证临界区互斥的重要技术,就是互斥锁。 互...
【TCP/IP协议】epoll
自己来试着总结下select与epoll的区别:
在阻塞模式下,select会不断查询内核,看有没有事件触发,如果有的话,会返回事件数组;接着读写函数会,依次查看事件数组,看看是哪个事件触发,继而对其进行读写。
epoll的话,会直接返回事件数组中被触发的时间,读写函数无须依次查看所有时间,直接去读写那个触发的事件就好。
-----------------------------------...
【C++】纯虚函数、虚函数、普通函数的继承
这三种函数的使用区别如下:
纯虚函数:只提供一个接口,具体实现方法需要派生类自己去重载。
由于纯虚函数的出现,基类变成了一个抽象类,只能被继承,而不能被实例化;纯虚函数的话,必须在派生类中重载。所以纯虚函数只提供一个方法的接口,实现方式需要派生类自己去写。
虚函数:提供接口,并提供默认的实现方法;派生类也可以根据需要自己去重载。
这就是说,虚函数提供默认的实现方法,如果派生类自己不重载它的...
【Python】 变量
1. 与C++不同,变量前面无须加类型
2. 字符串需要用 '' '' 或者 ' ' 括起来; / 表示转行; ''' ''' 可以表示连续换行;Unicode字符串可以表示中文,要在字符串前加u
3. 整整之间的运算,结果是整数;浮点数之间的运算,结果是浮点数;整数浮点数混合运算,结果是浮点数。
4. 布尔:Python把0、空字符串''和None看成 False,其他数值和非空字符串都...
【Python】 List和tuple
List的建立方法很简单:L = ['Adam', 'Lisa', 'Bart'],也可以通过下标访问
append()可以在List末尾添加元素
insert()可以在任意位置添加元素
pop()可以删除List中任意位置的元素
tuple也是数组的一种,与List区别在于,它一旦创建,就不能被修改,不能添加删除。写法上用()代替了[]。
t = (0,1,2,3,4,5,6,7...
【Python】 条件语句
if语句
1. if语句中,使用四格缩进表示统一代码块,不像c中使用{}。
2. Python中也有 if...else, if...elif...elif...else这样的语句
for语句
个人觉得for语句比较抽象以及跳跃...有点不合逻辑了
L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name
1. for...
【C++】Mutex
学习Mutex首先需要了解互斥锁的概念,详情见之前的文章。
Mutex类就是C++中实现互斥锁的类,互斥锁有可重入和不可重入之分:
mutex是不可重入的互斥锁,recursive_mutex是可重入的互斥锁;
加上上锁时间的限定后,就有了另外两个互斥锁:mutex_timed, recursive_timed_mutex,分别是可重入/不可重入的互斥锁。
互斥锁的操作有:
上锁 ...
【Python】dict
Python中的dict类似C++中的map,每个元素有key,以及对应的值。
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
len()可以计算dict中的元素个数。
可以通过,key值读取dict中对应的值,也可以通过get()获取key对应值;这两个方法区别在于,如果key不存在,第一种方法会报错,第二种方法会返回None...
【Python】set
set和List类似,都是数组,区别在于,set中的元素不会重复,且存放是无序的。
创建set的方法是,调用set,并将一个List传给它。
>>> s = set(['A', 'B', 'C'])
由于set是不存在重复元素的,如果我们传入一个有重复元素的List,系统会自动删掉重复的元素。...
php 刷新腾讯云cdn
<?php
namespace Org\Util;
/**
* RefreshCosCdn
* 刷新腾讯云CDN
*/
class CosCdn
{
/*需要填写你的密钥,可从 https://console.qcloud.com/capi 获取 SecretId 及 $secretKey*/
private $secretKey = '50vgHh097zgDb...
php类的封装、继承和多态的简单理解
面象对向的三大特点:封装性、继承性、多态性 首先简单理解一下抽象:
我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象
一、封装性
封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作。
php提供了三种访问控制修饰符
public 表示全局,本...
php 异步执行shell脚本
shell_exec("coscmd upload {$file['tmp_name']} {$targetFile} >/dev/null 2>&1 &");
linux中的标准输入输出
Linux中的标准输入输出
标准输入0 从键盘获得输入 /proc/self/fd/0
标准输出1 输出到屏幕(即控制台) /proc/self/fd/1
错误输出2 输出到屏幕(即控制台) /proc/self/fd/2
/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”
1、2>/dev/null...
jquery chosen动态设置值
突然发现如果用在省市选择发现有如下问题:
1,不能动态设置值
2,不能动态设置选中
看了好几遍API愣是米有发现有方法可以直接调用。没办法就看源码,发现在其初始化的时候有一个判断如下图:
发现有个destroy是不是("#city).chosen("destroy");就可以了呢。把猜想试了一下果然可以。在这之前调试过其生成的dom想通过直接将其生成的dom移除掉,结果是不可行的,能移...
java Web开发环境配置
JavaWeb开发环境配置(win7_64bit)
目录
1.概述
2.JavaWeb学习路线
3.JavaWeb常用开发环境搭建
4.注意事项
>>看不清的图片可在新标签打开查看大图
1.概述
说起JavaWeb,就想到另一个词:JavaEE。很多时候,这两个词是混用的,两者的概念并不能精确描述,这里,我...
今日推荐
周排行