多线程(二)~Thread类相关的API介绍
一、线程安全问题:
package com.multiThread.bean;publicclassAservise{privateString name;publicvoid doBusiness(String name){this.name = name;System.out.println("大家好,我是"+this.name);}}
package com.multiThread.thread;import com.multiThread.bean.Aservise;publicclassUnSafeThreadimplementsRunnable{privateAservise aServise;privateString name;publicUnSafeThread(Aservise aServise,String name){this.aServise = aServise;this.name = name;}@Overridepublicvoid run(){aServise.doBusiness(this.name);}}
package com.multiThread.test.common;import com.multiThread.bean.Aservise;import com.multiThread.thread.UnSafeThread;publicclassUnSafeThreadTest{publicstaticvoid main(String[] args){Aservise aService =newAservise();UnSafeThread unSafeThreadZhang =newUnSafeThread(aService,"张三");UnSafeThread unSafeThreadLi =newUnSafeThread(aService,"李四");Thread zhang =newThread(unSafeThreadZhang);Thread li =newThread(unSafeThreadLi);zhang.start();li.start();}}
大家好,我是张三大家好,我是李四
大家好,我是李四大家好,我是李四大家好,我是张三大家好,我是李四大家好,我是张三大家好,我是张三
publicsynchronizedvoid doBusiness(String name){this.name = name;System.out.println("大家好,我是"+this.name);- }
publicvoid doBusiness(String name){synchronized(this){this.name = name;System.out.println("大家好,我是"+this.name);}}

publicvoid println(String x){synchronized(this){print(x);newLine();}}
多线程(二)~Thread类相关的API介绍的更多相关文章
- (转)多线程——继承Thread 类和实现Runnable 接口的区别
java中我们想要实现多线程常用的有两种方法,继承Thread 类和实现Runnable 接口,有经验的程序员都会选择实现Runnable接口 ,其主要原因有以下两点: 首先,java只能单继承,因此 ...
- 多线程:Thread类的Join()方法
多线程:Thread类的Join()方法 http://blog.163.com/hc_ranxu/blog/static/3672318220095284513678/ 当我们在线程B中调用Thre ...
- 多线程学习笔记(四)---- Thread类的其他方法介绍
一.wait和 sleep的区别 wait可以指定时间也可以不指定时间,而sleep必须指定时间: 在同步中时,对cpu的执行权和锁的处理不同: wait:释放执行权,释放锁:释放锁是为了别人noti ...
- Java多线程01(Thread类、线程创建、线程池)
Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于 ...
- 多线程之 Thread类
一.多线程第一种方式的实现步骤(继承Thread类) 代码演示: 1.定义MyThread类,继承Thread类 2.重写了里面的run方法,在run方法中定义线程要执行的任务 public clas ...
- Java中实现多线程继承Thread类与实现Runnable接口的区别
Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过实现Runnable接口,实例化Thread类 在实际应用中, ...
- Java 多线程之 Thread 类 和 Runnable 接口初步使用
目录 Thread 类 Thread之定义线程类 Thread之开启线程 Runnable 接口 Runnable 之定义线程类 Runnable 之开启线程 @ Thread 类 Thread 类是 ...
- 多线程——继承Thread类实现一个多线程
继承Thread类实现一个多线程 Thread类部分源码: package java.lang; //该类实现了Runnable接口 public class Thread implements Ru ...
- Java 多线程 (Thread 类)
1.多线程 2.卖票 1.多线程实现 两种方式可以实现多线程: 继承 Thread 类,重写 run 方法:定义对象,调用 start 方法 创建类实现 Runnable 接口,作为实参传递给 thr ...
随机推荐
- 请求一个域名ip的缓存用处
前言 摘录自操作系统,这一段的内容很有启发,稍微加上自己的理解,写一篇博客记录一下. 缓存 缓存成功解决了速度不匹配设备之间的数据传输,并且在一般情况下,是整个系统的瓶颈:缓存的出现,有效减少了低速I ...
- Hibernate学习笔记(六)—— 查询优化
一.Hibernate的抓取策略 1.1 什么是抓取策略 抓取策略是当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候,Hibernate如何获取关联对象的策略. HIbern ...
- 【算法笔记】B1015 德才论
1015 德才论 (25 分) 宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君 ...
- hdu1686 Oulipo kmp
题目传送门 思路:kmp模板,稍微修改下 #include<bits/stdc++.h> #define clr(a,b) memset(a,b,sizeof(a)) using name ...
- [转] #!/bin/sh & #!/bin/bash区别
[From] http://blog.51cto.com/meiling/1826201 在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本.目前研发送测的shell脚本中主要有以下 ...
- [转] 智能合约开发环境搭建及Hello World合约
[From] http://www.cnblogs.com/tinyxiong/p/7898599.html 如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. ...
- 代理ip的使用以及多进程爬取
一.代理皮的简单使用 简单的看一二例子即可 import requests #代理ip 高频的ip容易被封,所以使用ip代理 #免费代理 ip:www.goubanjia.com 快代理 西祠代理 h ...
- python开头——文件声明 详解
一.解释器声明 1.声明方式 linux #!/usr/bin/python windowns #!c:/python27/python.exe 放在首行 2.作用 告诉电脑,要用/usr/bin下面 ...
- kindeditor<=4.1.5文件上传漏洞
最近发现很多网页篡改与暗链都是利用kindeditor编辑器,于是搜了一下kindeditor的漏洞,发现低于4.1.5版本的存在文件上传的漏洞,可以上传txt,html后缀的文档,许多恶意的文档貌似 ...
- Vue添加新的响应式属性
vm.userProfile = Object.assign({}, vm.userProfile, { age: , favoriteColor: 'Vue Green' })