Linux系统概念模型 在我眼里,Linux系统主要有如下部分组成 内存管理 虚拟内存:Linux把应用程序实际使用的虚拟地址以页为单位映射到物理地址,从而提高了内存资源的利用率;每个应用程序只能看到属于自己的统一的,连续的虚拟地址空间,从而保证了不同应用程序的隔离性,也降低了编程复杂度。同时,虚拟 ...
分类:
其他好文 时间:
2021-05-24 05:00:21
阅读次数:
0
一段有问题的代码,大概20%的概率,bStartSend的值的改变没有被检查到 //线程一直循环,等待消息 while (true) { if (bStartSend) { LogInfo("bStartSend=true"); StartMotor(ref ErrMsg, ref recvMsg, ...
分类:
编程语言 时间:
2021-05-24 04:57:32
阅读次数:
0
线程安全 定义:多个线程同时运行这段代码。如果每次运行结果和单线程运行结果是一样的,而且其他变量的值也和预期的是一样的,就是线程安全的。或者说,一个类或者程序所提供的接口对于线程来说是原子操作,多个线程间的切换不会导致执行结果存在二义性,也就是不用考虑同步的问题。线程安全策略就是多线程访问时,采用加 ...
分类:
编程语言 时间:
2021-05-24 04:41:53
阅读次数:
0
线程的概念 线程的组成: 栈区和栈区指针 程序计数器:PC 寄存器集合 线程的状态: 新建状态(New):刚被创建 准备状态(Runnable):加载所需的所有资源,等待CPU 运行状态(Running):被CPU执行 挂起状态(Blocked):阻塞,等待唤醒 线程和进程的区别: 1. 进程是资源 ...
分类:
编程语言 时间:
2021-05-24 04:32:11
阅读次数:
0
前面我们介绍了如何获取devices list的值,以及如何判断端口是否被占用。 今天我们继续介绍如何获取可用的端口。 思路: 创建一个方法,因为生成的端口不是平白无故的生成的,1,起始的端口要我们自己给出,2,生成的端口的数量与我们获取的devices的数量一致,3,端口不能被占用。 具体操作如下 ...
分类:
移动开发 时间:
2021-05-24 04:28:15
阅读次数:
0
一、synchronized的特性 1.1 原子性 所谓原子性就是指一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执行。但是像i++、i+=1等操作字符就 ...
分类:
其他好文 时间:
2021-05-24 04:17:55
阅读次数:
0
lambda表达式 new Thread(()->System.out.println("多线程学习")).start(); lambda表达式只能有一行代码的情况下才可以简化成一行,如果有多行,就需要用代码块 必须是函数式接口接口(函数式接口就是只包含唯一一个抽象方法) 多个参数可以去掉参数类型, ...
分类:
其他好文 时间:
2021-05-24 03:25:08
阅读次数:
0
##JVM 没什么好说的,所有java程序不管是什么框架也好、中间件也好,都是跑在jvm上的,成为java领域的专家不能不会JVM ##Java Collection jdk里边的集合的实现原理、源代码中包含了很多算法和数据结构的知识,属于语言的基本功,很基础,面试经常问。 ##多线程并发、NIO ...
分类:
编程语言 时间:
2021-05-24 03:11:23
阅读次数:
0
不会的点: √进程间同步,进程间通信方式 IO多路复用 epoll select poll √ 协程 死锁 进程和线程的死锁 √ 多线程多进程 √socket怎样建立进程间的通信 √Const关键字的用法 √右值引用 √编程实现:写一下shared_ptr这个类的实现,其中该有的数据成员和函数成员, ...
分类:
其他好文 时间:
2021-05-24 03:02:21
阅读次数:
0
注意:对象生命周期和依赖注入框架 依赖注入框架可以创建线程安全的,事务性的SqlSession和映射器,并将它们直接注入到bean中,这样您就可以忽略它们的生命周期。 您可能想看看MyBatis-Spring或MyBatis-Guice子项目,以了解有关将MyBatis与DI框架一起使用的更多信息。 ...
分类:
数据库 时间:
2021-05-24 02:38:08
阅读次数:
0