利用java的多线程技术实现数据库的访问

利用java的多线程技术实现数据库的访问

ID:33499675

大小:200.41 KB

页数:4页

时间:2019-02-26

利用java的多线程技术实现数据库的访问_第1页
利用java的多线程技术实现数据库的访问_第2页
利用java的多线程技术实现数据库的访问_第3页
利用java的多线程技术实现数据库的访问_第4页
资源描述:

《利用java的多线程技术实现数据库的访问》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第22卷第12期计算机应用Voi.22,No.122002年12月ComputerAppiicationsDec.,2002文章编号:1001-908(12002)12-0121-03利用Java的多线程技术实现数据库的访问刘巍,唐学兵(武汉大学计算机学院,湖北武汉430072)摘要:针对如何高速访问数据库,提出了Java线程库机制,结合实例讨论实际编程中运用同步机制和并发机制时可能会出现的几个问题,并分析了不同平台上使用Java线程库的区别。关键词:数据库访问;多线程;并发机制中图分类号:TP312JA文献标识码:ADatabaseName");1Java多线程

2、简介Statementst=conn.CreateStatement();SOLCiause="seiect!fromtabiename";在Java语言中提供了一个线程类(Thread)和一个界面ResuitSetrs=st.executeOuery(SOLCiause);(Runnabie),用于实现用户线程编程。if(rs.next())System.out.printin(rs.getString(1));其中Thread类的最主要的方法是ru(n),通过对ru(n)方st.ciose();法的覆盖,完成相应的操作任务。调用时使用star(t)方法,使co

3、nn.ciose();线程完成特殊的初始化操作后开始执行ru(n)操作,由此进入2.2多线程对数据库的操作可运行状态(runnabie)。执行完所有操作后由系统调用exi(t)数据库作为一个共享资源,可能会被多个线程同时访问,方法,这时线程进入死亡状态(dead)。这将会出现以下三类错误:系统中存在多个线程时,就需要保证线程的同步及相互1)事务执行时被错误打断通信,以期协调工作,避免发生死锁。Java提供了三个标准的线程的执行是由操作系统调度分配资源的,正在运行的Object类方法wa(it),notif(y)和notifyAi(i),以及三个Thread类线程也

4、可能会因为时间片到、I/O请求或者某种其它的原因方法siee(p),suspen(d)和resum(e),用于中断或唤醒线程的执而被剥夺系统资源,进入等待运行队列,由另一个线程继续占行。当线程调用siee(p),wai(t)或suspen(d)方法之后线程就用系统资源。然而作为对数据库操作的线程可能是由多条会由可运行状态进入阻塞状态(biocked),一旦线程睡眠时间SOL语句组成的一个事务,不能被打断,否则就可能会造成数到或者是其它线程调用了notif(y)或resum(e)方法后,此线程据访问的不一致。才会由阻塞状态进入可运行状态中,然而一个线程是否最终此时,

5、我们必须采用同步机制,使线程在中断期间不会由占有CPU,取决于系统的调度策略。Java1.0在soiaris版本中造成数据库访问错误的SOL语句的插入执行,保证事务的原实现的“绿色线程”的调用策略是让一个线程持续处于执行状子性。在Java语句中可以采用synchronized关键字标识语句态直到有一个更高优先级的线程将之打断,而Windows95和块成为临界资源,确保同一时刻只有一个线程可以进入,而其WindowsNT是给每一个处于可执行状态的线程分配一个时间它线程必须等待。片,当时间片用完时系统会调用另一个线程投入运行。pubiicsynchronizedboo

6、ieantransaction(intpara1,intpara2)throwsSOLException{Stringbuffersgiciause1=newStringbuffer("UPDATE[tabie1]SETcount=count+1WHEREcoi1='"+para1+"'");Stringbuffersgiciause2=newStringbuffer("UPDATE[tabie2]SETcount=count+1WHEREcoi1='"+para2+"'");booieanfiag=faise;con.setAutoCommit(faise);S

7、tatementst=con.createStatement();try{st.executeUpdate(sgiciause1.toString());st.executeUpdate(sgiciause2.toString());图1Java线程状态转化图fiag=true;//事务成功完成后返回标志truest.ciose();con.commit();2用Java对数据库操作}2.1单线程对数据库的操作catch(SOLExceptione){con.roiiback();使用Java对数据库的操作主要有以下五步:1)建立到数thrownewSOLExce

8、ption

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。