![](https://img-blog.csdnimg.cn/20191212230242656.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux系统编程
文章平均质量分 60
Linux系统编程学习
黄先生-?
生活也许不全都要酸酸甜甜,有时候像纯牛奶一样平平淡淡也没什么
展开
-
关于docker基于arm64平台配置jdk1.8环境记录
docker有默认的openjdk镜像,但是版本较低, 我记得好像是基于1.7的,如果你需要以上版本的docker镜像, 可以按照我的方式试试。首先看先docker官网上的镜像:Docker Hub具体自己上官网查看=》我用得是基于ubuntu基础镜像自己制作1.8版本的jre镜像分以下几个步骤:一:按照上序方式直接下载arm64位平台ubuntu基础镜像,或者执行docker pull --platfrom=arm64 ubuntu:16.04进行拉取,拉下来可以使用docke原创 2022-02-18 09:09:01 · 3723 阅读 · 0 评论 -
在代码中使用动态加载库函数调用动态库
函数原型:dlopen() ; dlsym(); dlerror(); dlclose()void *dlopen(const *char filename, int flag)自定义打开动态库,flag 通常为RTLD_LAZY返回值为null时打开失败void *dlsym(void *handle, char *symbol)获取动态库的函数指针,handle为dlopen的返回库句柄, symbol为动态库中存在的函数名, 返回的是一个函数指针, 所以定义时也需注意,...原创 2021-10-24 15:15:27 · 659 阅读 · 0 评论 -
linux系统编程之静态库与动态库
在工程中,我们能够经常看到xxx.a或者xxx.so文件, 以这两种命名结尾的就是链接库文件, .a结尾的为静态库链接文件, .so结尾的则为动态链接库文件。两者各有差异, 差异后面会细说。静态库:创建: -c是生成可重定位的ELF格式文件,如下图所示: 然后就可以生成静态链接库了: // ...原创 2019-12-24 23:09:38 · 119 阅读 · 0 评论 -
Linux系统编程之进程调度问题二
在一中主要介绍了进程的特性值nice的特征和设置问题。接下来主要介绍一下进程的几种调度方式。 一般系统会同时运行交互进程和后台进程,而标准的内核算法通常能够提供足够的性能和响应度。但通常会有一下几点要求:需要提供担保最大响应时间。高优先级进程应该能够保持互斥访问CPU直至它完成或者释放;实施应用应能够精确的控制其组件进程的调度顺序;//组件进程即从自身fork()出去的进程。...原创 2019-12-20 23:26:47 · 270 阅读 · 0 评论 -
Linux系统编程之进程优先级和调度一
进程是CPU的执行单位, 进程间的配合是否完美在一定程度上也就决定了该CPU的运行速度。那进程间是如何对CPU资源进行一个调用的呢?又是如何去取得CPU的使用权?这就得谈到进程得优先级和调度问题了。Linux调度进程使用CPU得默认模型是循环时间共享,就是每个进程访问CPU得时间是一致得,并且是循环轮流使用的, 而访问CPU这段时间称之为时间片或者量子。在这种模式种,进程...原创 2019-12-20 00:14:47 · 443 阅读 · 0 评论 -
Linux系统编程之线程内容补充
线程安全(论可重入性):函数可以供多个线程安全调用,称之为安全函数。实现线程安全主要有两种方法:将函数与互斥量关联使用,在函数返回时解锁; 将共享变量与互斥量关联起来,这种较为复杂。 函数实现为可重入函数(可重入函数即无需使用互斥量,即可多线程安全调用,就是避免对全局变量和静态变量的使用)...原创 2019-12-17 22:08:15 · 69 阅读 · 0 评论 -
Linux系统编程之线程同步处理(互斥量和条件变量)
每个线程都能够单独执行一个命令,当创建多条线程并且多线程同时会对全局变量(同一文件)等进行调用, 这时就要注意同步处理了,不然可能会出现超出你预料的变化, 这是因为CUP的调度是随机的而引起的。线程中有一种专门处理这种问题的方法, 称之为互斥量, 它能确保同时仅有一个线程可以访问一个共享资源, 这能保证其对任意共享资源的原子访问。互斥量有锁定(lock)和未锁定(unlock)两种状态,最多只...原创 2019-12-15 16:25:41 · 252 阅读 · 0 评论 -
Linux系统编程之线程一(线程的创建)
线程(thread)与进程类似,但是创建一个线程是进程的10倍甚至更多,一个进程可以包括多个线程,多线程可以执行多个任务,且每个线程之间都可以执行独立的任务。注意:线程之间是共享同一个全局内存区域的,包括数据段,堆,栈;同时还包括一下内容:1:进程的ID; 2:控制终端; 3:用户ID和组ID; 4:打开的文件描述符; 5:资源限制; 6:间隔定时器(setitime...原创 2019-12-12 23:58:35 · 343 阅读 · 0 评论