12月21日.多线程学习笔记(二)

继续多线程的学习。

CreateThread 函数原型如下:

参数解析:

lpThreadAttributes //指向SECURITY_ATTRIBUTES结构体的指针。可以为其传递NULL,让该线程使用默认的安全性。

dwStackSize //设置线程初始栈的大小,即线程可以将多少地址空间用于它自己的栈,以字节为单位。系统会把这个参数值四舍五入成为最接近的页面的大小。如果这个值为0,或者小于默认提交的大小,那么默认将使用与调用该函数的线程相同的栈空间大小。

lpStartAddress //指向[……]

康托展开 和 逆康托展开

康托展开就是一种特殊的哈希函数。

公式:

X = an*(n-1)! + an-1*(n-2)! + …… + ai*(i-1)! + …… + a2*(1)! + a1*(0)! 

其中,a[i] 为当前未出现的元素中,它排在第几个(从0开始计数)。 //不理解无妨,继续往后看样例。

例如,有一个数组 S=[A,B,C,D]。可以对它生成一个全排列:

ABCD    ABDC    ACBD    ACDB    ADBC    ADCB

BACD    BADC    BCAD    BCDA    BDAC    BDCA

CABD    CAD[……]

Go语言学习(三)

Go语言基础与数值布尔类型

 

前一章:欢迎访问Go语言学习(二)

 

1.Go语言环境变量和常用命令

$GOROOT 表示Go在电脑上的安装位置。

$GOARCH 表示目标机器的处理架构

$GOOS 表示目标机器的操作系统

$GOBIN 编译器和链接器的安装位置

$GOPATH 表示工作路径,允许包含多个目录

 

2.Go语言常用的操作命令

首先,Linux 可以在 Shell 中输入 go 来查看Go的操作命令

接下来介绍常用的操作命令。

go build 主要用于测试编译。在[……]

Go语言学习(二)

学习实例(二)—— goroutine 和 channel

 

前一章:欢迎访问 Go语言学习(一)

Linux 下编写方法:

以上是一个求和的计算,Go语言代码

首先对 goroutine 和 channel 进行一个讲解。

goroutine 是Go语言并行设计的核心。

goroutine是一种比线程更轻量的实现,十几个goroutine可能在底层就是几个线程。

要使用goroutine只需要简单的在需[……]

Go语言学习(一)

Go语言的起源:

http://baike.baidu.com/subview/5897/7068513.htm#viewPageContent

 

环境搭建:

1. 下载地址:https://studygolang.com/dl

选择最新包,当前版本是: go1.14.3.linux-amd64.tar.gz

2. 将下载的二进制包解压至 /usr/local 目录。

3. 将 /usr/local/go/bin[……]

Blog透明背景修改

修改位置:外观-编辑。样式表内:

找到如下两块设定。 标记为*即为修改或者添加部分。

#featured-slider {
* background-color: #FFFFFF;
* opacity:0.75;
border-bottom: 1px solid #EAEAEA;
}
#page {
max-width: 1268px;
margin: 0 auto;
* background-color: #FFFFFFF0;
box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3);
}

 

2017[……]

12月18日.多线程学习笔记

12月18日学习线程相关知识。

多线程学习笔记

进程

1.程序与进程

程序是计算机指令的集合,它以文件的形式存储在磁盘上。

进程通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动。

一个程序可以对应多个进程。

2.进程组成

进程由两部分组成。

(1)操作系统用来管理进程的内核对象。

(2)地址空间

进程不执行任何东西,它是线程的容器。

真正完成代码执行的是线程,而进程只是线程的容器,或者说,执行环境。

创建一个进程时,操作系统都会自动创建一个线程,称为主线程

 

线程

线程由两个部分组成:

(1)线程的内核对象[……]