多线程数据库操作问题,请大家给予解读,谢谢!

问题描述

有这样一个特殊情况: 有两个线程,他们之间是竞争关系,没有做同步, 线程A:读取数据库中ID从1到10000的记录(假使需要10s完成整个读取) 存储区:负责存放线程A读取的数据库结果集 线程B:读取存储区的数据库并打印 在这样的场景下,是否会出现,当线程A获得CPU时间后开始读取数据库,数据库的结果集正在网络上传输, 此时,线程B抢夺了线程A的运行权开始运行,请问,此时正在网络上传输的数据库的结果集怎么办?是被抛弃 还是被放到一个地方,等线程A恢复运行后再取出进行处理? 希望大家讨论一下这个过程,谢谢! 问题补充:当线程A正在接收数据库返回(网络传输)的时候,CPU被别人抢走了,此时的网络传输过来的数据,放在哪里,还是有缓存,数据临时存放一下,等线程A恢复运行后再去处理之前数据库返回的数据?

解决方案

A被咔嚓,传输的继续传输,B开始读取,读到哪算哪。都传输完了,B就能都读到,传输不完,B就只能读到存储区里面的已有数据。单例,线程同步,加锁,等等方法都能解决。
解决方案二:
看你的业务要求了,如果你的业务要求是只要读取开始了,那么就要在B中表现,那最好做个同步,事务级别上的同步

时间: 2024-09-12 14:56:50

多线程数据库操作问题,请大家给予解读,谢谢!的相关文章

C# 操作Excel 请高手赐教,谢谢!

问题描述 错误提示:无法将类型为"Microsoft.Office.Interop.Excel.ApplicationClass"的COM对象强制转换为接口类型"Microsoft.Office.Interop.Excel._Application".此操作失败的原因是对IID为"{000208D5-0000-0000-C000-000000000046}"的接口的COM组件调用QueryInterface因以下错误而失败:加载类型库/DLL时出

新手学PHP之数据库操作详解及乱码解决!_php基础

很多朋友新学PHP也许在数据库方面会有点麻烦,尤其是MYSQL4.1.x以后会出现乱码问题.这里写个简单教程,希望对新手有点帮助.也许很多朋友之前是学ASP的(本人也是),有可能怀念ASP的set rs=adodb.recorset(我靠,太久没做ASP,后面的好像有点错,想不起来了!凑活着看吧!)然后就rs.open,rs.movenext...........可是PHPA是依靠很多数据库操作函数来控制,比如:mysql_connect();mysql_select_db();........

数据库sqlite3能否执行多线程写操作?

问题描述 数据库sqlite3能否执行多线程写操作? VS代码: #pragma omp parallel for for(int i=0;i<OutNum;i++) { Outtable.setRow(i); Out = Outtable.getStringField(0); for(int j=i+1;j<OutNum;j++) { Outtable.setRow(j); OutRe = Outtable.getStringField(0); bufSQL.format("ins

phalapi-入门篇5(数据库操作和Model层)

phalapi-入门篇5(数据库操作和Model层) 前言 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 本小节主要讲解基于notorm的数据库操作以及使用Model层进行快速的数据层的开发,请确保装有PDO拓展. 附上: 官网地址:http://www.phalapi.net/ 开源中国Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release 1. 基于PDO的notorm进行的数据库操作

iOS数据库操作之FMDB

SQLite一种轻量级关系数据库,在嵌入式系统中使用比较广泛. 在iOS中使用SQLite需要添加库libsqlite3.0.dylib,并引入头文件#import <sqlite3.h> FMDB对sqlit接口进行了高级封装,使用上更加友好简洁. https://github.com/ccgus/fmdb FMDB包含以下文件: FMDatabase.h FMDatabase.m FMDatabaseAdditions.h FMDatabaseAdditions.m FMDatabaseP

[原创] EasyASP v1.5简化ASP开发,包含数据库操作类

EasyASP v1.5简化ASP开发,包含数据库操作类 EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作.目前只提供了VBScript版,JScript版将来可能会提供.详细说明请下载帮助手册,里面有非常详细的使用方法说明及源码范例. 源码

简化你的ASP编写工作 (原数据库操作类clsdbCtrl.asp)

首先,认为ASP已经过时的人,请忽略此帖,谢谢.俺这里只是提供一种思路,希望能给很多还在学习和使用ASP的朋友一种方便.尽管俺现在也很少用ASP了,但俺相信只要能满足应用,就没有什么过时不过时的,也许它的语言没那么高级,但做出来的应用不一定就低级,呵呵.     EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Eas

ASP通用数据库操作类源代码

<%'=========================================================================='文件名称:clsDbCtrl.asp'功 能:数据库操作类'作 者:coldstone (coldstone[在]qq.com)'程序版本:v1.0.5'完成时间:2005.09.23'修改时间:2007.10.30'版权声明:可以在任意作品中使用本程序代码,但请保留此版权信息.'          如果你修改了程序中的代码并得到更好的应用,

CI框架连接数据库配置操作以及多数据库操作

数据库快速入门例子代码 下面的内容将简单说明怎样使用数据库.更详细的信息请阅读各个函数的单独介绍页面.   初始化数据库类 下面的代码将依据你的数据库配置载入并初始化数据库类:   $this->load->database();   一旦被载入,你可以在任何地方像这样使用它:   注意: 如果你的所有页面均要求初始化数据库类,你可以让它自动加载.详见 数据库连接.   多结果标准查询(对象形式) $query = $this->db->query('SELECT name, ti