Welcome 微信登录

首页 / 操作系统 / Linux

优化屏障和内存屏障

优化屏障和内存屏障

优化屏障:该原语保证编译程序不会混淆元语操作前后的汇编语言指令。优化屏障即barrier(),翻译成汇编就是asm volatile("":::"memory")。memory关键字强制编译器假定RAM中的所有内存单元已经被汇编语言指令修改,volatile关键字进制把asm指令与程序中的其他指令重组内存屏障:在原语之后的操作开始之前,原语之前的操作已经完成串行指令,同事起到内存屏障的作用:I/O端口进行操作的所有指令lock前缀的所有指令写控制寄存器、系...
Python迭代器,可迭代对象,生成器

Python迭代器,可迭代对象,生成器

迭代器迭代器(iterator)有时又称游标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如链表或阵列)上遍访的界面,设计人员无需关心容器物件的内存分配的实现细节。摘自维基百科也就是说迭代器类似于一个游标,卡到哪里就是哪里,可以通过这个来访问某个可迭代对象的元素;同时,也不是只有Python有这个特性。比如C++的STL中也有这个,如vector<int>::iterator it。下面主要说一下Python中的...
C++ STL简述

C++ STL简述

前言最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂。有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了…不会告诉你距离上次使用可能已经有半年以上了。STL是什么STL为C++的标准模版库,又称为C++泛型库,在std命名空间中定义了常用的数据结构和算法,使用起来十分方便。STL提供三种类型的组件:容器。主要有两类:顺序容器和关联容器。前者主要包括:ve...
机器学习算法的随机数据生成

机器学习算法的随机数据生成

在学习机器学习算法的过程中,我们经常需要数据来验证算法,调试参数。但是找到一组十分合适某种特定算法类型的数据样本却不那么容易。还好numpy, scikit-learn都提供了随机数据生成的功能,我们可以自己生成适合某一种模型的数据,用随机数据来做清洗,归一化,转换,然后选择模型与算法做拟合和预测。下面对scikit-learn和numpy生成数据样本的方法做一个总结。1. numpy随机数据生成API numpy比较适合用来生产一些简单的抽样数据。...
十年来,编程领域有什么重要进展?

十年来,编程领域有什么重要进展?

编程语言层出不穷,然而内核是万变不离其宗。我个人看法觉得是以下几个方面的变化比较明显。语言本身:1. 工业标准网页标准有 W3C 控制,尤其是浏览器的开发,所有主流的浏览器都会自觉符合这个组织的标准,当然这些开发商本身就是这个组织的成员。所以新的 HTML5,CSS3,ES6 JavaScript 的新特性的得到顺利推动,让大部分主流浏览器都支持它,W3C 功不可没。PHP 有 PHPFIG 组织,虽然不是强制性的,但是很多新的框架和库都自觉遵守这个组织的...
C#基础知识之字符串

C#基础知识之字符串

string作为我们在编程当中用的最多的数据类型,同时又由于它的特殊性,怎么强调它的重要性都不为过,理解string的一些类型和存储机制,有助于我们写出正确且高效的代码.一.string类型 1.string的类型 string类型直接继承Object类型,Object类型是引用类型,因而string类型是引用类型无疑. 我们借助VS的类视图可以看到这一点: 这意味着: (a).string类型不会在线程的堆栈中存储任何字符串,而是存储...
C#基础知识之const与readonly

C#基础知识之const与readonly

一.const与readonly的争议 你一定写过const,也一定用过readonly,但说起两者的区别,并说出何时用const,何时用readonly,你是否能清晰有条理地说出个一二三? const与readonly之所以有如此争议,是因为彼此都存在"不可改变"这一特性,对于二者而言,我们需要关心的是,什么时候开始不可变?什么是不可改变的?这就引出了我们下面要讨论的话题.二.什么时候开始不可变? 我们先抛出结论. const在程序运行的...
JavaScript面向对象分层思维

JavaScript面向对象分层思维

js本身不是面向对象语言,在我们实际开发中其实很少用到面向对象思想,以前一直以为当要复用的时候才封装成对象,然而随着现在做的项目都后期测试阶段发现面向对象的作用不仅仅只是复用,可能你们会说面向对象还有继承,多态的概念,但在javascript里面多态的概念是不存在,而继承由于web页面的必须先下载js在运行导致js的继承不能像后台那么灵活而且js没有重载以及重写不方便(而且js中重写的意义不是很大),所以在js中很少用到面向对象,可能在一些插件中会看到对象...
ExtJS4加载FormPanel数据的几种方式

ExtJS4加载FormPanel数据的几种方式

我们做web应用最多的就是处理表单,extjs为我们提供了很多处理表单的功能,很多初学者疑惑怎么加载表单数据,到底能用什么方式加载?本文中,我将我自己实验过的进行一下总结,自己备忘,也希望能帮助到其他人。1.使用loadRecord加载Model数据。这也是我目前用的较多的。比如有个角色管理,定义如下model“:Ext.define("roleModel", { extend: "Ext.data.Model", fields: [ ...
ExtJS 更新数据集Ext.PagingToolbar的start参数重置的处理

ExtJS 更新数据集Ext.PagingToolbar的start参数重置的处理

问题:当翻页后,比如当前是第二页,start参数此时是5(初始为0),当切换左侧分类时,我们期望的是从所选分类下明细记录的第一条开始显示,结果发现不是这样,依然是从新数据的第二页开始显示,就是说extjs默认传递的start参数没有重置为0,依然是5,这样后台通过sql分页就会出问题,解决方法是,对store的currentPage赋值,如下filestore.currentPage = 1;treePanel.getSelectionModel().on...
C++的STL

C++的STL

今天,看一段代码的时候发现只一句话就做了个排序,是这样的:sort(rotateArray.begin(),rotateArray.end());很震惊,后来查了一下sort的用法,sort函数的用法自己写个冒泡之类的O(n^2)排序,不但程序容易超时,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。 这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区...
Java中的Scoket编程

Java中的Scoket编程

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net包中提供了两种常见的网络协议的支持:TCP: TCP是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称TCP / IP。UDP:UDP是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。在这里我们主要讲解socket编程(使用最为广泛的网络编程),举个简单的例子,就像是我们平常用的QQ,每个人用的都是一个...
使用c3p0连接池

使用c3p0连接池

首先我们需要知道为什么要使用连接池:因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉,每次新建连接都需要140毫秒左右的时间而C3P0连接池会池化连接,随时取用,平均每次取用只需要10-20毫秒,所以如果是很多客户端并发随机访问数据库的话,使用连接池的效率会高。接下来我们看使用c3p0需要做那些准备:首先需要导入相对应的jar包:c3p0-0.9.1.2-jdk1.3.jar,然后就是链接数据库的配置文件:c3...
Java字符流和字节流对文件操作

Java字符流和字节流对文件操作

记得当初自己刚开始学习Java的时候,对Java的IO流这一块特别不明白,所以写了这篇随笔希望能对刚开始学习Java的人有所帮助,也方便以后自己查询。Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中。而字符流操作的最小单位则是字符。可以先看一下IO流的概述:下面首先是通过字符流对文件进行读取和写入: 1 pack...
<< 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 >>