java 线程安全 锁
2016-05-30 10:38
417 查看
两个线程A,B。调用同一加锁代码块C,假如A先调用C,在A线程调用C完成之前,B线程要调用此代码块必须先等待,等A调用完成,B立马执行C.
package test; import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import net.sf.json.JSONObject; import com.hlzt.wx.util.http.WxHttpClientUtils; import com.hlzt.wx.util.msg_handler.MsgDispatcher; public class ss { public static void main(String[] args) throws UnsupportedEncodingException { ddd d=new ddd("aaaaaaaaaaaaaa"); d.start(); ddd d2=new ddd("bbbbbbbbbbbbbb"); d2.start(); } public synchronized static void aa(String str) { System.out.println("1#########"+str); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("2#########"+str); } } class ddd extends Thread{ private String aaa; public ddd(String aaa) { this.aaa = aaa; } @Override public void run() { ss.aa(aaa); } }
相关文章推荐
- java学习之(内部类)
- java学习之(垃圾回收)
- Spring embedded database examples
- java中单例类
- java 学习之(基本语法)
- 深入理解Java内存模型(二)——重排序
- Struts2学习(每天一点进步)
- Java学习一
- Eclipse 寻找迷失的ID
- Java泛型的好处
- java控制台如何把一个对象的信息打印出来?
- 排序和顺序统计量之简单选择排序
- 用java 对图片的截图、拼接、合成处理、添加文字
- Java中的基础----this的使用
- Eclipse 扩展点常量ID
- 在Eclipse中创建Maven的Web项目时出现错误:An internal error occurred during: "Retrieving archetypes:"
- Spring中@Async用法总结
- spring aop源码实现分析
- Java jvm关闭钩子
- Java中Synchronized的用法