THẢO LUẬN

thg 9 19, 2024 3:02 CH

Mybatis này trước tui đọc thấy Hibernate tiện hơn do dùng ORM, nên bỏ qua, xong qua Nhật toàn dự án maintain hồi xưa kiểu dùng Mybatis này, thời chưa có ORM phổ biến. Lại phải học để nhúng tràm. Cám ơn chủ thớt về bài viết nhé.

0

Hồi xưa mới mò web gặp miết nhớ luôn :V

0
thg 9 19, 2024 1:35 CH

hình như hàm sieve2 của bạn bị sai, mình thử in ra bitset của mảng p thì tất cả đều bằng 0. Mình cũng mong bạn giải đáp bitset có thực sự tăng tốc độ không. và nếu tối ưu thì mình mong bạn chỉ tối ưu về phần xử lí bit và không thay đổi những cái khác để mình dễ so sánh

0
thg 9 19, 2024 11:13 SA

thanks

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 9 19, 2024 10:33 SA

Mình đã thử lại với các góp ý của bạn và thực sự nó không giúp tăng tốc độ. Không biết là bitset có thực sự tăng tốc độ không mình rất thắc mắc, vì tìm kiếm ở đâu cũng thấy là bitset có tốc độ nhanh hơn mảng bool trong khi mình chạy thực tế lại không như vậy

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 9 19, 2024 10:23 SA

Phần % 63 là một số sai sót của mình, đáng lẽ phải là 64. Mình sẽ thử lại tối ưu hàm mark

0

anh ơi, nếu GA áp dụng vào lọc thư rác thì có được không ạ

0
Avatar
đã bình luận cho bài viết
thg 9 18, 2024 1:57 CH

Rất hay, cảm ơn chia sẻ của bro

0

Hay quá giờ mới biết. Đại khái như 1 VPS có sẵn các thư viện để code theo 1 công nghệ/ngôn ngữ nào đó (NodeJS, Python,...)

Có hỗ trợ .NET Core ko bạn ?

0

Cảm ơn anh vì những kiến thức bổ ích

+1

Anh có thể giúp em làm rõ hơn 2 câu hỏi sau được không ạ ?

  1. Trong đoạn Làm cách nào để KHÔNG cancel Coroutine khi một trong các phần tử con của nó bị lỗi, có phải anh đang muốn ám chỉ rằng có 2 cách để giải quyết là Sử dụng SupervisorJobHandle exception cho từng thằng Coroutine con

  2. Có phải khi sử dụng SuperviorJob thì nên đi kèm với với CoroutineExceptionHandler để xử lý lỗi cho từng job con ? Nếu không thì Exception vẫn được throw ra

val nonEssentialOperationScope = CoroutineScope(SupervisorJob())
suspend fun getConfigAndSongs(): Pair<UserConfig, List<Song> = coroutineScope {
    val userConfig = async { getConfigFromAPI() }
    val songs = async { getSongsFromAPI()}
    nonEssentialOperationScope.launch { 
 	/* tác vụ không cần thiết ở đây */
	// Trường hợp xảy ra lỗi, throw RuntimeException(), thì hàm getConfigAndSongs() có throw RuntimeException() không ? 

    }
    Pair(userConfig.await(), songs.await())
}

image.png

0
thg 9 18, 2024 8:24 SA

Dạ em đang dùng windows 10 Pro, visual studio code Version: 1.93.1 (user setup), unikey 42RC6. Em đã thử cài lại vs, dùng các version khác của uniekey, cài các phần mềm gõ tiếng Việt khác, thử rất nhiều cách rồi mà vẫn chưa dứt được lỗi luôn ạ 😦

0
Avatar
đã bình luận cho bài viết
thg 9 18, 2024 3:20 SA

Trong cái giải pháp hiện tại, Singleton đước thế chỗ bởi IoC và Dependency Injection. Một số hiếm trường hợp khi DI không dùng được mới có vị trí cho Singleton.

Double check dễ hiểu hơn qua cách viết sau:

if (Objects.isNull(instance)) {
    // có thể có nhiều threads cùng đến bước lock này (cùng chạy qua check null)
    // check null 1 lần không thực sự loại bỏ vấn đề
    synchronized (ThreadSafeSingleton.class) {
        // double check lại trong lock để đảm bảo không khởi tạo instance hai lần
        if (Objects.isNull(instance)) {
            instance = new ThreadSafeSingleton();
        }

        return instance;
    }
}
+1
thg 9 17, 2024 5:15 CH

Theo như doc thì free-threaded mode này đang là tính năng được thử nghiệm và không enable by default. Vẫn còn rất nhiều công việc phía trước.
Hóng đến khi có bản release chính thức từ đội ngũ các nhà phát triển Python 😄.
Anyway, cảm ơn bạn đã chia sẻ thông tin hữu ích nha.

0
thg 9 17, 2024 4:37 CH

Trả về nhưng mình k lưu thì có sao đâu nhỉ, mình nghĩ thường rf token sẽ nằm trong cookie rồi

0
thg 9 17, 2024 3:28 CH

python 3.13 bắt đầu có option bỏ GIL rồi https://docs.python.org/3.13/whatsnew/3.13.html#free-threaded-cpython

+1

Đúng ra phải là local storage lưu dữ liệu ở dạng chuỗi, không phải JSON. Việc dùng JSON.stringify chỉ là convert object thành chuỗi JSON.

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í