刷题笔记
Erlei_n
这个作者很懒,什么都没留下…
展开
-
用动态规划方法找字符串中最长回文子串
LeetCode中有这么一道题:给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"回文串的定义我就不啰嗦了。对于这道题,我的第一反应是用动态规划方法解。假设字符串s的长度为length,建立一个leng...转载 2019-06-26 16:39:12 · 179 阅读 · 0 评论 -
程序什么时候应该使用线程,什么时候单线程效率高
1.耗时的操作使用线程,提高应用程序响应2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。3.多CPU系统中,使用线程提高CPU利用率4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。对于处理时间短的服务或者启动频率高的要用单线程,相反用多线程!...原创 2019-07-02 16:10:23 · 2172 阅读 · 0 评论 -
惊群现象
惊群效应也有人叫做雷鸣群体效应,简言之,惊群现象就是多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的所有进程(或者线程),但是最终却只可能有一个进程(线程)获得这个时间的“控制权”,对该事件进行处理,而其他进程(线程)获取“控制权”失败,只能重新进入休眠状态,这种现象和性能浪费就叫做惊群。为了更好的理解何为惊群,举一个很简...转载 2019-07-02 16:18:14 · 216 阅读 · 0 评论 -
C++函数内的静态变量初始化以及线程安全问题
1. 如果是编译时和加载时初始化, 是不会存在线程安全这个issue的; 因为这两种初始化一定发生在Main函数执行之前, 这个时候尚未进入程序运行空间; 而这些初始化一定是在单线程环境下操作的! -- 都是在执行C Runtime的startup代码中的void mainCRTStartup(void)函数时所在的OS系统加载程序时的主线程空间上发生的!2. 如果是运...原创 2019-07-02 16:23:29 · 1052 阅读 · 0 评论 -
C++线程安全的单例类
单例模式是一种非常常用的设计模式,几乎在稍大的工程项目中都会用到。单例类保证在全局中只有唯一一个类的实例对象,并且在类的内部提供了获取这个唯一实例的接口。在类中,实例化出一个对象需要调用构造函数,为了防止在类的外部调用构造函数构造出实例,对类的构造函数就应有所限制,可以将构造函数的访问权限设置为private或protected。还要提供一个访问实例的接口,在类中定义一个static函数,返回类内...转载 2019-07-02 16:49:15 · 290 阅读 · 0 评论