一.线程并发同步概念 线程同步其核心就在于一个“同”.所谓“同”就是协同.协助.配合,“同步”就是协同步调昨,也就是按照预定的先后顺序进行运行,即“你先,我等, 你做完,我再做”. 线程同步,就是当线程发出一个功能调用时,在没有得到结果之前,该调用就不会返回,其他线程也不能调用该方法. 就一般而言,我们在说同步.异步的时候,特指那些需要其他组件来配合或者需要一定时间来完成的任务.在多线程编程里面,一些较为敏感的数据时不允许被多个线程同时访问的,使用线程同步技术,确保数据在任何时刻最多只有一个线程…
上一篇博客<sqlite:多线程操作数据库“database is locked”解决方法>通过注册延时函数的方法来处理数据库被锁的问题.此方法固然能解决问题,但是在多个线程向数据库写入大量数据的情况下,延时会拖慢进度. 想出方法二: 1. 创建一个链表,链接如下格式的结构体,线程1,线程2,线程3......不直接改写数据库,而是把sql语句插入链表中: typedef struct { uint8_t *buf; uint32_t len; } sqlItem_t; 2. 创建一个独立的线…
摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他服务和Web进行交换,Java开发必不可少,又不想动用Eclipse大家伙,只能自己动手编写脚本进行Java代码的编译和运行,期间遇到的一些问题,记录下来供自己和大家参考.1)软件包不存在/软件包 javax.jms 不存在    这是由于javac编译时找不到javax.jms所在的软件包,因此将…
做解密操作,出现如下错误 java.security.InvalidKeyException: Illegal key size // 设置解密模式为AES的CBC模式 Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKeySpec key_spec = new SecretKeySpec(aesKey, "AES"); IvParameterSpec iv = new IvParamet…
在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法 在Eclipse中运行Jboss时,时间太长可能有时候会出现java.lang.OutOfMemoryError:PermGen space的错误,这里给介绍大家一种解决方法: <!--[if !supportLists]-->1.        <!--[endif]-->点击debug图标旁边的小箭头: <!--[if !vml]-->…
访问tomcat出现java.lang.IllegalStateException: No output folder错误解决方法 问题:tomcat分为安装版和解压缩版,解压缩版如果解压到安装盘,在浏览器中访问http://localhost:8080,可能会出现500错误,错误提示如下: localhost:8080 java.lang.IllegalStateException: No output folder 原因如下:tomcat目录没有被读写的权限,导致文件不能被编译到指定的工作目…
error: could not open D:\java\jre1.8\lib\amd64\jvm.cfg 解决方法:把java的环境变量%JAVA_HOME%/bin上移到最上面 优化 查看网页源代码 Ctrl+U 测试浏览器是否支持html5访问 http://html5test.com word封面加下划线 打好字 ctrl+U 在字后面打空格自动生成下划线 在字前面打空格 选中所有空格 ctrl+U 邮件服务器的搭建和客户端的安装 1.安装易邮服务器 2.修改自己的域名 工具-服务器设…
java.net.BindException: Address already in use: 解决方法   1. 执行cmd 2. cmd命令模式下输入netstat -ano,然后找到占用端口的那个进程 如下图.. 3.PID号为1488的进程占用着8080端口,打开任务管理器查看详细信息,查找PID号为1476进程,点击结束任务即可,如下图所示( 也可以直接 使用命令taskkill  /pid  9848 /f) 4.重新启动想启动的应用…
在Delphi  多线程中出现“尚未调用CoInitialize错误”的解决方法 解决方法如下: function  TMyThread.ExecTimer: Boolean;begin  Result := False ;  FMyThreadExecfinish := False;  Screen.Cursor := crHourGlass;  CoInitialize(nil); // 一定要加上此行代码  try    TranspondClientBaseData_factory1(H…
实现同步的三种方法 多线程共享数据时,会发生线程不安全的情况,多线程共享数据必须同步. 实现同步的三种方法: 使用同步代码块 使用同步方法 使用互斥锁ReetrantLock(更灵活的代码控制) 代码示例: import java.util.concurrent.locks.ReentrantLock; public class SyncThreadDemo { public static void main(String[] args) { MyRunnable mr = new MyRunn…