java学习笔记之线程2
来源:互联网 发布:怎么刷新微信运动数据 编辑:程序博客网 时间:2024/06/06 15:01
java学习笔记之线程2
今天接着上次的的同步说起,从“Synchronization”这个关键词说起:
第一篇文章说到,我同步的去做两件事,是靠我的思想去协调的,才能同步来做写博客和睡觉两件事情。程序是没有脑子和思想的(这句话说的不够严谨,其实已经可以让程序有思想了,很久以前就有关于神经网络的研究了)—-水太深
神经计算机公司的创立者 Dr. Robert Hecht-Nielsen对神经网络的定义:神经网络是由多个简单的处理单元彼此按照某种方式相互连接而形成的计算机网络系统,该系统通过对外部输入信息的动态响应来处理信息。
由于水平很有限!先不研究神经网络这么高深的东西,我们用一些算法也能实现线程的同步(神经网络也算一种算法吧),在java中不用你自己去写这些算法,发明java的大神们已经给你写好了,你去调用就好,是去调方法吗?no no no,在java中有这么一个关键字:Synchronized你可以把它看做一个同步管理员,这个管理员会去协调线程同步执行,那我们先来看看它是怎么用的(能看到Synchronized的底层源码就好了,底层应该是c语言写的,有时间看看能不能找到)
下面我们看看用这个管理员怎么去协调多个线程的同步的:
我们先看看如果没有Synchronized这个管理员,程序在执行线程的时候是什么结果:
**************************看一段代码:**************************
package thread;/** * Synchronized关键字的简单用法Demo1 * 这儿我把测试类和线程类写在了一起,方便 * 大家看 * @author Administrator * */public class SimpleSynchronizedDemo1 { public static void main(String[] args) { /* * 先创建写博客,睡觉两个线程,具体的创建过程大家可以参考javaSE */ Thread writeBlog = new Thread(new WriteBlog()); Thread sleep = new Thread(new Sleep()); /* * 让两个线程调用start()方法,让它们都处于Runnable状态 * 只要他们获取cpu时间片,就会执行(Running) */ writeBlog.start(); sleep.start(); }}/*** 写博客的线程*/class WriteBlog implements Runnable{ @Override public void run() { System.out.println("我开始写博客了"); System.out.println("我写完博客了"); }}/*** 睡觉的线程*/class Sleep implements Runnable{ @Override public void run() { System.out.println("我开始睡觉了"); System.out.println("我睡完觉了"); }}
我们看看执行两侧的效果:
从图可以看出上面两个线程不是同步执行的!
今天周末太累了,先写到这里,休息下,下周再写
到时更新会把链接放在下面,谢谢大家!
这是线程3的链接
这是线程3的链接
阅读全文
0 0
- java学习笔记之线程2
- java学习之线程笔记
- java学习之线程笔记
- java学习笔记之线程
- Java学习笔记之线程
- Java学习笔记之线程
- java学习笔记之多线程(2)之线程安全
- Java线程学习笔记之线程简介
- Java线程学习笔记之线程同步
- java基础学习笔记之九--线程(2)
- Java学习笔记之线程的生命周期
- Java学习笔记之线程的控制
- java学习笔记之线程并发库
- Java线程学习笔记之Executor
- java 多线程学习笔记之 线程中断
- java 多线程学习笔记之 线程同步
- java学习笔记之线程操作方法总结
- Java学习笔记之进程和线程
- Web自动化之Headless Chrome开发工具库
- asp简介
- Linux&Shell命令系列(二)
- 【Dubbo】--简介
- caffe之具体运行流程分析
- java学习笔记之线程2
- 打造一个简单的Java字节码反编译器
- 深入剖析Nginx时间缓存
- 最大化平均值
- 离线下载(MainActivity)
- XML 新手入门基础知识
- ZOJ 3494 AC自动机+数位DP
- 简易Vector
- 基于string的undered_map的实现