14 。util.*包 和 多线程



        util包


        系统工具类

                System

                    

                Runtime类

                    

                Toolkit类

                         加载图片  
 
                         获得屏幕大小

                         屏幕抓图


        集合

                

                Collection(单集合)


                    List(列表)

                                Vector

                                ArrayList

                                LinkedList

                            有序  可以重复


                    
                    Set(散列)

                            无序   不可以重复


                                HashSet

                                TreeSet



                    关于集合:需要掌握:   创建   放置  遍历   删除  替换   查找







                Map(对集合)


                    HashMap

                            单线程环境使用  高效率


                    Hashtable


                            多线程环境     效率低

                            

                    Properties

                            它的父类是Hashtable,然后 它特殊

                        1、要求key  value 都必须String;

                        2、它可以将数据store  ===>文件中;
                    
                        3、它可以将文件中的数据 ====〉集合中;

                        4、文件可以是XML





                关于对集合:需要掌握:   创建   放置  遍历   删除  替换   查找



    

多线程


            多用户使用环境,需要几段(相同或不同的)代码并列执行,来对付不同的客户;


            java提供了多线程的解决方案,一个程序  有多个线程,多个线程并列执行;

            

2、多线程实现

            
            方式1:extends Thread方式;


                开发多线程步骤:


                1、开发一个类,让这个类extends Thread类;


                2、在该类中 重写 run()方法;

    
                3、将自己的多线程代码 放置到  run()中;


                4、使用上面的类创建一个对象,该对象就是线程对象;


                5、启动该线程对象;




                哼哈  并列执行案例

                改进这个案例为实际案例   卖票问题   四个线程  各卖各的;

                

                



            方式2:implements Runnable方式



                开发多线程步骤:


                1、开发一个类,让这个类implements Runnable类;


                2、在该类中 重写 run()方法;

    
                3、将自己的多线程代码 放置到  run()中;


                4、使用上面的类创建一个对象,该对象就是线程资源对象; oo;

                
                5、使用Thread类创建一个对象,将oo对象传递进来,如:Thread t1= new Thread(oo);

                     
                6、启动该线程对象  t1.start();










            对比两种创建多线程的方式:

            
                方式2  implements Runnable方式 ,其实 实现的是一个  线程执行需要的代码资源,

                我们可以将这个代码资源传递给 多个线程,这样就实现多个线程

                访问同一个资源的效果,这个在实际开发中使用的更多。


            




    3、多线程环境下  数据不同步

                所谓的多线程环境下数据不同步就是:  多个线程 执行同一个段代码,

                访问同一个数据,可能引起  数据部一致的情况;


                

                如何解决:

                Java的解决方案 两种:

                        同步代码块


                        synchronized(狗){


                            引起不一致的代码;

                        }
    


                        其实就是看门狗模式:

                        找一条狗,看住上面的代码块,保障同一时间内,只有
                        一个线程可以被执行;

                        




































       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值