- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 台大机器学习基石作业编程题
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-08-05 17:09:08
808
原创 c++11 多线程 二 锁和互斥量
Locksmutex(互斥量)是 核心同步原语(原语:OS术语,由若干指令组成,用于完成一定功能的一个过程)。在头文件中有四种不同形式的的互斥量:•mutex:提供核心方法lock() unlock() 无阻塞 try_lock()(返回互斥量是否无法使用)•recursive_mutex:允许同一线程多次获得互斥量•timed_mutex:和mutex一样,但比它多两
2015-12-01 16:49:00
639
原创 C++11 多线程 一
本周决定 搞定c++11 多线程Threadsstd::thread 在头文件,可以配合常规函数,匿名函数(lambdas),仿函数使用,并支持传递任意类型和个数参数传递给绑定的线程函数#include "stdafx.h"#include #include #include void func(int n1, int n2, std::string str)
2015-11-30 13:34:39
602
原创 代码整洁之道
代码整洁之道本书写作目的及阅读对象:想成为更好的程序员第一章 整洁代码1.代码将永存——明确需求细节,直到机器可以执行,就是编程2.糟糕代码毁掉公司3.混乱代码难维护,为以后发展留下隐患4.简洁代码:1)能通过所有测试2)没有重复代码3)体现系统中的全部设计理念4)包括尽量少的实体,比如类、方法、函数等重要的两点:消除重复代码和提高表达
2015-11-26 16:11:47
452
原创 C++11 智能指针 unique_ptr shared_ptr weak_ptr
智能指针智能指针是基于RAII机制实现的类(模板),具有指针的行为(重载了operator*与operator->操作符),可以“智能”地销毁其所指对象。C++11中有unique_ptr、shared_ptr与weak_ptr等智能指针,可以对动态资源进行管理。智能指针是类而不是指针shared_ptrshared_ptr是一种引用计数指针,没有任何其它的shared_ptr
2015-11-26 13:59:51
1483
原创 C++内存管理
C++内存管理本篇为笔记 一 基础部分 1.c++内存分为5个区:栈,堆,自由存储区(与堆类似,用malloc分配,free释放)全局/静态存储区,常量存储区堆与栈: 1、管理方式不同; 2、空间大小不同; 3、能否产生碎片不同; 4、生长方向不同; 5、分配方式不同; 6、分配效率不同; 管理方式:对于栈
2015-11-25 15:42:57
1431
原创 handle与handler的区别
handle既是名词也是动词,而handler只是个名词。在计算机编程术语里handle作为名词时是对可进行管理的资源对象的抽象,handle指向某个类别的资源对象,如文件句柄,进程ID都可以用handle来表达,在当动词讲时含义是处理和操作。而handler表示的是过程(函数),理解为功能处理器的含义,如常用的回调函数可以用handler来表示。
2015-11-02 17:22:11
4825
转载 Windows核心编程:内核对象
作者:shenzi链接:http://hi.youkuaiyun.com/shenziWindows核心编程:内核对象 1.对象和句柄 对象是静态定义的对象类型的单个运行时实例。对象类型包括系统定义的数据类型,在数据类型实例上的操作的函数以及一组对象属性集。 对象为完成下列四种重要的操作系统任务提供了方便的方法:为系统资源提供可读的名字;在进程间共享
2015-11-02 16:13:48
631
转载 临界区的实现与原理
临界区概述:用于多线程的互斥访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入临界区后,其他试图访问的线程将被挂起,直到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到对临界区的互斥访问。(临界区中一般都是一个简短的代码段)在WINDOWS中,临界区是一种应用层的同步对象,非内核对象。并且临界区优先采用自旋的方式进行抢占临界区API:
2015-11-02 15:31:30
1987
转载 c++多线程 二
引言C++11 是 2011 年 9 月 1 号发布的。C++11 在 C++03 的基础上做了大量的改进,引入了很多新的特性,比如 Lambda 表达式,右值引用,统一的列表初始化方式,正则表达式等等。当然,其中最令人激动的特性是新标准引入了原子操作类和线程支持库。C++ 一直在语言层面缺少对多线程的支持,因此 C++11 新标准基本上弥补了这一缺陷。可以毫不夸张地说,C++11 相当于
2015-10-30 14:12:10
551
转载 c/c++ 回调函数
回调一般是指一个模块中提供一个过程,通过另一个模块的API进行注册,然后由后者负责调用。简言之,前者负责提供函数或子过程,后者负责调用。举两个最常见最简单的例子:1。Windows的计时器机制:应用程序的开发者编写一个函数,用来完成一件事情,然后通过Windows系统的API:SetTimer注册到系统中,于是每当用户设置的时间间隔到来时,前面说的那个函数就被系统自动调用执行。这个函数就是
2015-10-29 15:58:02
1283
原创 Effective C++ Item3
只要可能就用const1.const 指针T* const p p 是const *p非const p = p++ //ok *p = xx //errorconst T* p p非const *p是const p = p++ //error *p=xx //ok注意:这两种类型作为函数参数传递没有区别2.const 成员函数返回类型为const 引用
2015-09-06 14:25:59
409
原创 Effective C++ Item2
用const enum inlines 取代 #define这个 Item改名为“用 compiler(编译器)取代 preprocessor(预处理器)”也许更好一些,因为#define根本就没有被看作是语言本身的一部分1)常量2)函数 参数自增情况下,#define会出问题#define 适用情况1)需要特定的宏定义满足编译选项需求2
2015-08-31 17:23:11
361
原创 Effective C++ Item1
1.视C++为语言联合体1)C部分 blocks(模块) statements(语句) preprocessor(预处理器) built-in data types(内建数据类型) arrays(数组) pointers(指针) 预处理器是干什么的呢 预处理器C/C++预处理器什么都不会做,只是做宏替换和文本替换。C/C++预处理是不会做任何语法检查的,不仅是因为它不具备语法检查
2015-08-31 16:52:09
341
原创 TCP/IP协议第一章阅读笔记
1.TCO/IP起源 6 0年代末美国政府资助的一个分组交换网络研究项目,到 9 0年代已发展成为计算机之间最常应用的组网形式。2.TCP/IP分层网络协议通常分不同层次进行开发,TCP/IP通常被认为是一个四层协议系统:
2015-08-31 14:21:06
434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人