Hallo ihr lieben,
ich habe da ein Problem. Ich arbeite nicht so oft mit Multithread weswegen ich das lieber abklären möchte.
Ich muss 1.000.000 abfragen machen. Diese wollte ich auf 5 Threads aufteilen so das jeder Thread "nur" 200.000 abfragen hat. Ich habe keine Textdatei o.ä weswegen ich an eine Schleife dachte.
Ich habe da nur das Logikproblem wie ich die nächst-freie Zahl an den Thread übergebe und sie nicht ausversehen die gleiche Zahl nehmen. Ich hoffe man versteht was ich meine.
Ich dachte daran die 1.000.000 in einer Array zu generieren und die verbrauchte Zahl immer zu löschen. (geht ein Array überhaupt so weit?)
Mein Code bislang ist nicht sehr aussagekräftig und hat keinen wirklichen ansatz da ich nicht weis wie ich an die Sache am besten ran gehe.
Thread 1 nimmt die Zahl 1 und Löscht die Zahl 1 aus dem Array
Thread 2 nimmt die Zahl 2 und Löscht die Zahl 2 aus dem Array
Thread 3 nimmt die Zahl 3 und Löscht die Zahl 3 aus dem Array
Thread 4 nimmt die Zahl 4 und Löscht die Zahl 4 aus dem Array
Thread 5 nimmt die Zahl 5 und Löscht die Zahl 5 aus dem Array
Thread 1 nimmt die Zahl 6 und Löscht die Zahl 6 aus dem Array
Thread 2 nimmt die Zahl 7 und Löscht die Zahl 7 aus dem Array
Thread 3 nimmt die Zahl 8 und Löscht die Zahl 8 aus dem Array
Thread 4 nimmt die Zahl 9 und Löscht die Zahl 9 aus dem Array
Wie würdet ihr das Problem lösen?
ich habe da ein Problem. Ich arbeite nicht so oft mit Multithread weswegen ich das lieber abklären möchte.
Ich muss 1.000.000 abfragen machen. Diese wollte ich auf 5 Threads aufteilen so das jeder Thread "nur" 200.000 abfragen hat. Ich habe keine Textdatei o.ä weswegen ich an eine Schleife dachte.
Ich habe da nur das Logikproblem wie ich die nächst-freie Zahl an den Thread übergebe und sie nicht ausversehen die gleiche Zahl nehmen. Ich hoffe man versteht was ich meine.
Ich dachte daran die 1.000.000 in einer Array zu generieren und die verbrauchte Zahl immer zu löschen. (geht ein Array überhaupt so weit?)
Mein Code bislang ist nicht sehr aussagekräftig und hat keinen wirklichen ansatz da ich nicht weis wie ich an die Sache am besten ran gehe.
Thread 1 nimmt die Zahl 1 und Löscht die Zahl 1 aus dem Array
Thread 2 nimmt die Zahl 2 und Löscht die Zahl 2 aus dem Array
Thread 3 nimmt die Zahl 3 und Löscht die Zahl 3 aus dem Array
Thread 4 nimmt die Zahl 4 und Löscht die Zahl 4 aus dem Array
Thread 5 nimmt die Zahl 5 und Löscht die Zahl 5 aus dem Array
Thread 1 nimmt die Zahl 6 und Löscht die Zahl 6 aus dem Array
Thread 2 nimmt die Zahl 7 und Löscht die Zahl 7 aus dem Array
Thread 3 nimmt die Zahl 8 und Löscht die Zahl 8 aus dem Array
Thread 4 nimmt die Zahl 9 und Löscht die Zahl 9 aus dem Array
VB.NET-Quellcode
- Public Class frmMain
- Dim thread1 As New System.Threading.Thread(AddressOf GrabThread1Sub)
- Dim thread2 As New System.Threading.Thread(AddressOf GrabThread2Sub)
- Dim thread3 As New System.Threading.Thread(AddressOf GrabThread3Sub)
- Dim thread4 As New System.Threading.Thread(AddressOf GrabThread4Sub)
- Dim thread5 As New System.Threading.Thread(AddressOf GrabThread5Sub)
- Dim GrabThread1 As Boolean = False
- Dim GrabThread2 As Boolean = False
- Dim GrabThread3 As Boolean = False
- Dim GrabThread4 As Boolean = False
- Dim GrabThread5 As Boolean = False
- Private Sub GrabThread1Sub()
- End Sub
- Private Sub GrabThread2Sub()
- End Sub
- Private Sub GrabThread3Sub()
- End Sub
- Private Sub GrabThread4Sub()
- End Sub
- Private Sub GrabThread5Sub()
- End Sub
- Private Sub btn_grab_Click(sender As Object, e As EventArgs) Handles btn_grab.Click
- 'Schleife oder ähnliches?
- If GrabThread1 & GrabThread2 & GrabThread3 & GrabThread4 & GrabThread5 = False Then
- 'Hier kommt die Funktion die die Nummer an den Thread übergibt
- End If
- End Sub
- End Class
Wie würdet ihr das Problem lösen?
Liebe Grüße,
C.O.D.E
Testautomatisierung (TA):
C.O.D.E
Testautomatisierung (TA):
5%
Du findest meinen Beitrag Hilfreich? Dann drück auf Hilfreich!