由买买提看人间百态

topics

全部话题 - 话题: mythread
1 (共1页)
z****e
发帖数: 54598
1
来自主题: Programming版 - 如何快速处理大量网上xml文件?

最简单的就是自己写一个MyThread extends Thread
然后main函数里面:
MyThread myThread = new MyThread();
myThread.start();
多个的话
MyThread thread1 = new MyThread();
MyThread thread2 = new MyThread();
thread1.start();
thread2.start();
就启动了两个线程并发处理了
b***i
发帖数: 3043
2
来自主题: Programming版 - Java的多线程的一般问题
谢谢,看了大家的回复,看来有希望。
我要做的是这么一件事情。我拿到一个项目的源代码,整个项目实现有好几十个类,其
中具体操作的实现里面有几百个函数,其中大约10几个是有关访问网页的,其他的是计
算。中间嵌套调用很多。举个例子,比如,读网页,分析网页,这些都是有一个共用的
变量来记录现在的状态的。这个项目只能读写一个网页。
我想把多线程加进去,比如一个线程读一个网页,另一个可以读另一个。但是,我现在
有一个static的控制变量,如果一个线程改了该网页的状态,如成功与否,是否再试一
次,网页内容多少,另一个就发现也改了。
怎么做呢?我想的就是生成多个控制变量数组,或者每个线程动态生成这个控制变量,
把这个变量
传入相关的每一个函数。有180多个。
另一个办法,是不用改180个函数的定义,而是在每个具体相关的函数(大约10个)需
要首先获得当前线程的id,然后在控制变量的数组里面取出这个线程对应的那个控制变
量。这个只要保证线程id不超过100个,我数组先定义个1000这么大。
本质上,是每个线程运行的时候,从线程堆栈里找出线程的唯一的标志信息,然后取得
和该线程对应的控制变量。这个变量是... 阅读全帖
t*******2
发帖数: 182
3
一老印,电面迟到15分钟,打过来也不花两分钟介绍一下team之类的,直接上题。。
1) Can you explain dependency injection with an example, in java.
我一下子懵了,听都没听说过这个东西,什么也扯不出来,只好老实承认没听说过。。
事后google了一下,好像是Spring framework里面的一个概念。。
2) Can you create memory leak with a sample program.
也是完全没准备过,想了两分钟想不出什么来,老印直接开始问下题
3) What do you think is the output of this sample program
public class MyThread implements Runnable {
String myString = "Yes ";
public void run() {
this.myString = "No ";
}
public static void main(String[] args) {
MyThread t ... 阅读全帖
f*******t
发帖数: 7549
4
大家来测试一下到底多少个Yes和No吧。加不加volatile关键字对结果有影响哦!
public class MyThread implements Runnable {
volatile String myString = "Yes";
public void run() {
this.myString = "No";
}

public static void main(String[] args) {
AtomicInteger[][] counts = new AtomicInteger[10][2];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 2; j++)
counts[i][j] = new AtomicInteger(0);
Thread[] threads = new Thread[1000];
for (int i = 0; i < 10... 阅读全帖
a**********0
发帖数: 422
5
来自主题: JobHunting版 - java concurrence 例子
看到有的网友对这个概念比较糊涂 我把我写的代码放上来大家看看 都挺简单的
如何开拓一个新thread 和它的driver程序
package jc;
import java.util.*;
public class NewThreadOne extends Thread {

LinkedList myLinkedList = new LinkedList();
// Optional: a constructor which contains this.start()
// if there is no constructor or there is no this.start(), then have to
manually threadName.start()

//Must override run(): inside run() can put a flag which can stop the
thread
@Override
public void run(){
myLinkedList.add... 阅读全帖
l**********r
发帖数: 4612
6
【 以下文字转载自 JobHunting 讨论区 】
发信人: tarotaro2 (taro), 信区: JobHunting
标 题: 上个Yahoo电面面经, 给恶心坏了。。
发信站: BBS 未名空间站 (Thu Sep 12 14:33:48 2013, 美东)
一老印,电面迟到15分钟,打过来也不花两分钟介绍一下team之类的,直接上题。。
1) Can you explain dependency injection with an example, in java.
我一下子懵了,听都没听说过这个东西,什么也扯不出来,只好老实承认没听说过。。
事后google了一下,好像是Spring framework里面的一个概念。。
2) Can you create memory leak with a sample program.
也是完全没准备过,想了两分钟想不出什么来,老印直接开始问下题
3) What do you think is the output of this sample program
public class MyThread implements ... 阅读全帖
n*m
发帖数: 23
7
来自主题: Java版 - Can Java thread return a value?

It is much similar to asynchronous call (may be I should say the same)
I've said, create your own runnable. Also, I suggest you can have your own
thread pool
public interface MyRunnable {
public int run ();
}
or
public class MyThread {
private Thread thread;
public int run () {
thread = new Thread();
thread.start();
...
return something;
}
}
...
MyThread mt = new MyThread ();
int result = mt.run();
wrap Thread running function in the implementation of
I******y
发帖数: 176
8
来自主题: JobHunting版 - careercup 150 deadlock 一题
design a class which provides a lock only if there are no possible deadlocks
解答并没有给出到底什么时候可以acquire lock阿.这个canAcquireResource具体怎么
实现呢
For our solution, we implement a wait / die deadlock prevention scheme.
1 class MyThread extends Thread {
2 long time;
3 ArrayList res = new ArrayList();
4 public ArrayList getRes() { return res; }
5
6 public void run() {
7 /*run infinitely*/
8 time = System.currentTimeMillis();
9 int count = 0;
10 while (true) {
11 if (count < 4) {
... 阅读全帖
l***y
发帖数: 4671
9
来自主题: Thoughts版 - linux 或者 perl 高手们啊
用 perl 开一个多线程,每个线程分别实时逐行报告状态,想既在屏幕上显示,又同时
分别输入到 log 文件中去。咋整涅?
狗了很多,最接近的办法是在线程里写:
sub mythread ($){
...
my $rc = system("myprogram blah blah blah | tee LOG_$_[0].txt");
...
}
这个方法的问题是没法实时逐行在屏幕上显示,而是把 myprogram 的输出分三次显示
出来。。。
为啥会分三次涅?。。。俺的c++ 程序里的输出命令都是 printf 啊,分别在三个
loops 里。大约长相是:
第一个循环 A:
if (dbg_parameter){
printf("\n\33[32;40m Parameters got from file "%s": \33[0m \n", sParFile.c
_str());
for (map::iterator it = p.begin(); it != p.end(); it++)
printf("\tp["%s"]... 阅读全帖
c*****t
发帖数: 1879
10
来自主题: Java版 - java的接口runnable
Well, in Java you need to do
Runnable myRunnable = new Runable () { ... };
Thread myThread = new Theaqd (myRunnable);
myThread.start ();
Simply creating Runnable object (myRunnable) does not create a new
thread.
Synchronizations etc are a whole new set issues.
w*******e
发帖数: 285
11
我原来的一个简单的tcpserver是每次有连接就创建一个新的thread,就像这样
Socket connectionSocket = serverSocket.accept();
new myThread(connectionSocket, CoreDB).start();
现在想改成threadpool,本来想自己写,但是发现有一个非常简单的
ThreadPoolExecutor,用起来就象这样
Socket connectionSocket = serverSocket.accept();
threadPoolExecutor.execute(new myThread(connectionSocket));
help里面说ThreadPoolExecutor有最小count和max count,thread数量低于min count的
时候每次都创建新的thread,在min count和max count之间只有queue满的时候才会创建
新的thread,如果已经达到max count而且queue也满了就会转给rejecthandler.
我不太理解的是概念上的问题,我的
A*******e
发帖数: 2419
12
来自主题: Programming版 - C++11的lambda不会破坏可读性吗?
std::thread mythread([]() {
do_sth();
do_sth_else();
});
觉得不如单独声明好懂啊。
auto callable = []() {
...
}
std::thread mythread(callable);
c*********e
发帖数: 16335
13
来自主题: Programming版 - Java的多线程的一般问题
final public class MyThread extends Runnable{
private final int id;
public MyThread (int idd, DifferentClass dc) {
this.id= idd;
//setFunction's business logic here:
}
@override
public void run(){
dc.dosomething();
}
}
T*****e
发帖数: 361
14
来自主题: Programming版 - Java的多线程的一般问题
如果dc.dosomething()的呼叫线程是MyThread或者它的子类,直接吧当前线程cast成
MyThread就能拿到id了吧。
T*****e
发帖数: 361
15
来自主题: Programming版 - Java的多线程的一般问题
看上去是MyThread中定义的id啊,他都可以支持传进来的。不直接传可能是避免参数变
动导致的修改吧。
如果只是一般意义上的线程id,那跟MyThread的实现一毛钱关系都没有。
b***i
发帖数: 3043
16
来自主题: Programming版 - Java的多线程的一般问题
看了一下,似乎这个就是我最终想要的。
就是说,在我自己实现了Runnable的类里面定义一个static变量
class MyThread implements Runnable{
ThreadLocal myControl...
public void run(){
call other class, other functions
}
...
}
class Other {
public void dosomething(){// without passing in any parameter
MyThread.myControl...就可以访问该线程所拥有的那个Control,而不是所有线程
共有一个。
虽然在语法上是static变量,但是其实是线程相关的。当然,也可能需要通过函数访
问,不是直接访问这个变量。
}
n*m
发帖数: 23
17
来自主题: Java版 - Can Java thread return a value?

It can be calculated in the new thread. My sample is a typical asynchronous
call. So, you may get invalid value from the call since the new thread may not
finish.
However, there are many ways to get a "correct" value. Here is a sample
public class MyValue {
boolean ready=false;
int realvalue;
public boolean getReady() {
return ready;
}
public void setReady (boolean ready) {
this.ready = ready;
}
}
...
MainThread:
MyValue returnValue = myThread.run();
while
I*******e
发帖数: 1879
18
☆─────────────────────────────────────☆
chgdragon (cplusmad) 于 (Thu Apr 5 20:57:16 2007) 提到:
Implement a lock object in Java that takes thread priority into
consideration.
Assume that all threads in the system are subclasses
of MyThread. We want to define a Lock class so that
other parts of the program can use this class to
protect critical sections:
Lock lock;
....
lock.lock();
.... // synchronized code
lock.unlock();
The special requirement for Lock is that, regardles
b***i
发帖数: 3043
19
来自主题: Programming版 - Java的多线程的一般问题
主要是Java,也可以应用在其他语言:
我自己定义一个线程的类,然后定义一些实例,这些实例有些基本的变量的值是不同的
,比如
public class MyThread extends Runnable{
int id;
public void setID(int idd){id=idd;}
public void setFunction(DifferentClass dc);
...
public void run(){
dc.dosomething();
}
}
然后我想在dc.dosomething这个函数里面取得呼叫它的线程的信息:id,除了在run里
面吧这个传入dc.dosomething(id)外,还有什么别的办法?
我问这个主要因为这个程序的调用已经有几百个函数这么写了。要改还有点麻烦,也不
确定我就能全部搞定。怎么简单点可以把线程的基本信息告诉非常深入的子程序呢?
c*********e
发帖数: 16335
20
来自主题: Programming版 - Java的多线程的一般问题
lz说的id,到底是指thread的id,还是myThread中的id这个属性?
b***i
发帖数: 3043
21
我写了一个线程播放midi,函数输入是一个字符串,里面告诉我要弹什么键。所以我一
边播放,一遍调用Thread.sleep(200)来等待。每次sleep会后,我要看一个变量是否被
UI线程设置了,如果设置了,就退出这个线程。否则,我继续等待,直到这个音符结束
,然后我播放下一个音符。
另一个办法是不是interrupt?这个是怎么用的?UI直接调用mythread.interrupt?
以上是有sleep的线程,所以我怎么着都可以退出。如果是大量计算的线程,是不是就
只能不停查询变量才能退出啦?
1 (共1页)