THẢO LUẬN

Chời ơi hay quá 👏👏👏

0

Cảm ơn bạn. Bài viết hữu ích 😃

0

Viết hay quá😍😍

0
thg 7 13, 2018 11:50 SA

=))

0
Avatar
đã bình luận cho bài viết
thg 7 13, 2018 11:16 SA

tham số kiểu T ? thế nếu tham số truyền vào là Collection<G> collection, T itemToCount . Thì sẽ chuyển thành <T,G> hả anh ??

0

Ah có thể cho em hỏi làm thế nào để query referen trong 1 document ạ

0
thg 7 13, 2018 9:43 SA

Sơ lược như thế thì đầy đủ chắc chới 😃 😃 😃

0
thg 7 13, 2018 9:41 SA

đây mới chỉ là một chút kiến thức sơ lược thôi mà 😉

0
thg 7 13, 2018 9:34 SA

Dài vãi 😄

0

trc bị lẫn 2 cái này, project dùng chartjs mà cứ đi đọc doc chartist rồi sửa mãi ko đc (facepalm3)

0

k viết là quên ngay. Coi như là note lại để khi nào dùng thì nhớ ý mà 😄

+2

mình cũng đang cần cái này. Like!

+2

console.log (người); // Bryant you can edit it.

+2
thg 7 13, 2018 8:15 SA

hóng những bài viết tiếp theo của bạn, rất chi tiết (Y)

+1
Avatar
đã bình luận cho bài viết
thg 7 13, 2018 6:13 SA

Bài viết hay mà ít người quan tâm Thank thớt nhé 😄

0
thg 7 13, 2018 4:48 SA

hôm trước mình đọc lại hiểu là một container chỉ cho tối đa 2 network (user-define ) được connect vào, nên mới thắc mắc. Nay đọc lại thì thấy có vẻ không rõ nghĩa lắm =))

0
thg 7 13, 2018 4:28 SA

Vì em cho hết nó vào trong 1 scope nên các task trong cái scope đó vẫn chạy theo thứ tự. Thứ tự chạy task trong scope không có 1 tí gì liên quan tới THỜI GIAN thực thi task, mà chỉ liên quan tới THỨ TỰ KHAI BÁO task.

1 bắt đầu -> 1 kết thúc -> 2 bắt đầu -> ...đợi rất lâu nhưng 3 vẫn không được phép start ... -> 2 kết thúc -> 3 bắt đầu-> 3 kết thúc

Do vậy kết quả sẽ không in theo cái mong muốn của em là 1-1 1-3 1-2 mà vẫn in theo thứ tự FIFO là 1-1 1-2 1-3

Để các task chạy đồng thời, em phải tách nó ra các queue khác nhau như ví dụ này Em có thể thêm đoạn print start - endperformWork để check log.

DispatchQueue.global(qos: .userInitiated).async {[unowned self] in
    print("1-1") // task 1
    print("1-3") // task 3
}

DispatchQueue.global(qos: .userInitiated).async {[unowned self] in
    self.performWork() // task 2
}

func performWork() {
    print("1-2 start")
    let n = 5000
    var matrix = Array(repeating: [Int](repeating: 0, count: n), count: n)
    for i in 0..<n {
        for j in 0..<n {
            matrix[i][j] = i + j
        }
    }
    print("1-2 finish")
}

Tuy nhiên ví dụ này cũng KHÔNG đảm bảo việc LUÔN LUÔN in ra

1-1, 1-2 start, 1-3, 1-2 finish

mà nó sẽ có 2 kết quả

1-1 , 1-2 start, 1-3, 1-2 finish

hoặc

1-2 start, 1-1, 1-3, 1-2 finish

0

đoạn ở trong catch kìa em 😃

0
thg 7 13, 2018 4:02 SA

Em hiểu ý anh nói là trong concurrent queue giả sử có 3 tasks là task 1, task 2, task 3 thì task 1 chay trước rồi đến task2 rồi đến task 3 nhưng 3 task này vẫn chạy đồng thời. Ví dụ:

DispatchQueue.global(qos: .userInitiated).async {[unowned self] in print("1-1") // task 1 self.performWork() // task 2 print("1-3") // task 3 }

func performWork() { let n = 5000 var matrix = Array(repeating: [Int](repeating: 0, count: n), count: n) for i in 0..<n { for j in 0..<n { matrix[i][j] = i + j } } print("1-2") }

thì thực tế nó sẽ in ra kết quả: 1-1 1-2 1-3

nhưng nếu task2 làm công việc nặng thì theo lý mà nó phải in ra thế này mới đúng chứ anh: 1-1 1-3 1-2

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí