-
线程?还是其他的实现0
前景:我有个请求类似批量导入
然后我导入1000条数据,我点击导入,忽然发现我有几条是错的,我想通过前台的一个按钮去终止我当前的导入方法并且回滚事务,求大神指点
2013年9月02日 17:37
5个答案 按时间排序 按投票排序
-
“忽然发现我有几条是错的”这个是怎么发现的?
如果批量处理,应该是处理之后才发现的吧。那就记录导入的数据,删掉错误的,修改后重新导入。
如果是批量处理过程中发现的,那说明你已经有显示处理过程的线程了,那在这个地方增加停止的按钮,出发这个事件时让批量处理的线程停止。
从你的标签看应该是web ajax程序吧,可以用上一个回答中的方法,在session中方标志2013年9月03日 16:59
-
这显然是不同的俩个事务了:
客户需求可谓是变态,完全把系统当成变形金刚,不过我觉得可以换个方式实现这个:
首先,考虑一种情况,系统已经处理完成了,这时发现错了,难道还能有什么事物之类的说法吗? 所以可以统一处理做个确认流程就是了。
比如在数据库表中添加标示字段为当前导入内容,前台添加确认或者回退按钮,但发现问题后可以点击回退按钮,将数据库中相应记录删除。
没必要马上终结当前方法(不太现实)。2013年9月02日 17:56
相关推荐
一个程序可以包含多个线程,这些线程可以同时运行,共享程序的内存空间和其他资源,从而使得程序能够在多核处理器上更加高效地利用计算资源。 ### Java中如何创建和管理线程 #### 创建线程的两种主要方式 1. **...
- **资源管理**:每个线程都有自己的堆栈,合理管理内存和其他资源对性能和稳定性至关重要。 - **异常处理**:线程可能抛出未捕获的异常,需要有适当的异常处理机制来确保程序的健壮性。 通过以上知识,我们可以...
线程是计算机编程中的一个重要概念,它是一个进程中执行的不同控制流,可以理解为程序执行的独立路径。...无论是用户级线程还是内核级线程,都有其适用的场合和局限性,选择哪种方式需要根据实际应用的需求来权衡。
#### 四、其他的线程实现机制 - **核心级线程(Core-Level Threads)**:核心级线程是由操作系统内核直接管理和调度的线程。这种方式通常用于支持多处理器系统,线程可以直接被调度到不同的处理器上,从而充分利用...
这是因为主线程退出后,其他仍在运行的线程尝试访问已被释放的资源。 **解决方法**: 1. **调整循环次数**:将线程函数内的循环次数调整为一个合理的数值,例如100,以确保线程会在合理的时间内结束。 2. **显式...
无论你是通过继承`Thread`还是实现`Runnable`,都需要对线程同步和通信有深入的理解,以便在实际项目中解决并发问题。通过实践`ThreadProject`这样的实战项目,你可以更好地将理论知识应用于实际场景,从而提高编程...
其中,多线程技术可以用于实现复杂的并发操作,包括创建定时器功能。本篇文章将详细探讨如何在MFC中利用多线程来实现定时器。 首先,我们需要了解MFC中的`CWinThread`类,它是所有线程的基础类。创建一个新的线程时...
值得注意的是,mongoose 6.7及更高版本可能已经改变了多线程的实现方法,因此理解旧版代码对于升级或迁移至关重要。 **mongoose的多线程使用** 1. **线程池设计**:在多线程HTTP服务器中,通常会使用线程池来管理...
在实际的多线程并发通信实现中,服务器端需要维护一个线程池,当有新的连接请求时,从线程池中获取一个空闲线程处理请求,处理完成后线程返回线程池。这种方式提高了系统的并发性能,同时也保证了资源的有效利用。 ...
在Java并发编程中,`CountDownLatch`是一个同步辅助类,它允许多个线程等待其他线程完成操作。在批量插入数据的场景下,可以创建一个CountDownLatch对象,初始化为线程的数量,每个线程处理完自己的数据后调用`...
由于Java的单继承特性,当一个类需要继承其他类时,就不能再直接继承`Thread`,这时实现`Runnable`接口就成为创建线程的优选方案。本篇将深入探讨如何通过实现`Runnable`接口来创建多线程,以及如何使用`Thread`类的...
"Thread 线程类实现 Runnable 接口" Thread 线程类是 Java 中 Thread 和 Runnable 接口的实现,它提供了线程的基本操作和管理。下面是对 Thread 类的详细介绍: 1. Runnable 接口 Runnable 接口是 Thread 类的...
`Runnable`接口更利于实现多线程,因为它允许实现类与其他接口一起使用,而`Thread`类则直接提供了线程操作的方法。 2. **ExecutorService与ThreadPoolExecutor**:Java并发框架中的`ExecutorService`是线程池的...
同样,在`ServiceThread`中,我们可能使用`Object.wait()`和`Object.notify()`或者`Condition`来实现线程间的同步,确保每次只有一个客户正在接受服务。 ```java public class CustomerThread extends Thread { ...
如果锁已被其他线程持有,那么当前线程将被阻塞,直到锁被释放。这确保了在同一时刻,只有一个线程能够执行互锁代码块内的语句。 接下来,我们讨论线程中调用控件的问题。在Windows Forms或WPF应用程序中,UI控件...
在本实例中,我们将深入探讨如何使用Java实现多线程以实现异步调用,并理解其背后的机制。 首先,多线程允许一个程序同时执行多个任务。在Java中,我们可以通过继承`Thread`类或实现`Runnable`接口来创建线程。在这...
在易语言中,实现增强多线程命令是一项重要的技术,这对于编写高效、并发性强的程序至关重要。 多线程是现代软件开发中的一个核心概念,它允许多个任务在同一时间执行,提高了程序的执行效率和响应速度。在易语言中...
在C语言中实现多线程是一项重要的编程技术,特别是在Windows环境下。本文将深入探讨如何在Windows操作系统下,利用Microsoft Visual Studio 2015(VS2015)进行C语言多线程程序的开发。我们将关注三个核心部分:线程...
轻量进程在内核层面为线程提供支持,每个线程都有自己的执行上下文,但共享进程的其他资源,如文件描述符、信号处理等。 然而,LinuxThreads存在一些局限性,比如在处理信号时,信号会被发送到整个进程,而非特定...
通过委托,我们可以将方法作为参数传递给其他方法,实现回调机制。 在C#中,`System.Threading`命名空间提供了对线程操作的支持。我们可以通过创建`Thread`对象来启动新线程,而`Thread.Start()`方法用于启动线程。...