多线程编程模型

一.加密技术分类
1.消息摘要算法(保证消息完整性)
摘要=加密(内容)
MD5(速度快,128位)和SHA(更安全的算法,160位)

    2. 对称密钥(私钥加密)
秘文=加密(明文,密钥), 明文=加密(秘文,密钥)
DES(56位),RC4,RC5,AES(128,192,256),BlowFish(32~448)

   3. 非对称加密(公共密钥)
秘文=加密(明文,私钥), 明文=加密(秘文,共钥)
RSA

二.线程相关的类

1.Thread
主线程调用start启动,在新线程中执行run方法
2.Runnable
抽象的run方法,可作为独立的可执行对象
3.Timer/TimerTask
独立的线程中维护一个有序的TimerTask队列,满足某时间条件时,在该线程中调用相应TimerTask的run
有阻塞风险,只有一个执行线程
4.Executor/ExecutorService/ScheduledExecutorService/ScheduledThreadPoolExecutor和ScheduledFuture
对Timer的扩展,支持单一执行线程,有限线程池,每任务每线程集中执行模型


三.多线程编程模型
1.One Request One Thread
优点:逻辑简单
缺点:浪费资源,线程数目不可控
2.Master/Slave
一个线程负责检测事件,使用线程池中的线程来处理事件
优点:相对节约资源,线程数目可控
3.Leader/Follower
一个线程检测事件,检测到之后立刻处理,通知线程池中其它线程继续检测事件
优点:减少处理时的切换,更加高效

四.多线程容器
同步容器
通过访问加锁,避免多线程并发访问来保护资源
比较影响性能
Collections.synchronizedXXX(XXX c)
并发容器
通过最大限度允许并发读访问
针对读远大于写的访问优化
ConcurrentHashMap通过多个细粒度的写锁和针对java内存模型的优化
CopyOnWriteArrayList/Set,写入时复制

你可能感兴趣的:(thread,job 总结)